/ Forside/ Teknologi / Udvikling / SQL / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Pareto
Fra : pedroso
Vist : 1018 gange
200 point
Dato : 15-07-13 23:51

Jeg har en tabel med en struktur som nedenfor.

Kategori Start Stoptid
A 15-Jul-13 11:12:13 15
B 15-Jul-13 11:11:13 14
C 15-Jul-13 11:10:13 8
B 14-Jul-13 11:09:13 25
A 14-Jul-13 11:08:13 35
B 14-Jul-13 11:05:13 23

Jeg har egentlig brug for data i dette format:

Dato A B C
15-Jul-13 15 14 8
14-Jul-13 35 48 0

Alså en summering af Stoptid for hver dag.

Kan man lave et view i det nederste format baseret på det øverste?

 
 
Kommentar
Fra : pmbruun


Dato : 16-07-13 07:35

Hvis der altid er netop kategorierne A, B og C, så der kommer aldrig nogen D, E, F, o.s.v. kan du lave et view hvor du laver SELECT DISTINCT på datoerne, og så et sub-query for hver kolonne.

Men hvis antallet af kategorier er varierende, kan du ikke lave et view, hvor antallet af kolonner varierer.

Brug i stedet GROUP BY til at hente summen af hver kategori grupperet pr. dato.

Accepteret svar
Fra : SuperDelphi

Modtaget 200 point
Dato : 16-07-13 10:37

Det du ønsker er at dreje tabellen, så Koloner bliver til rækker og omvendt.

Jeg fandt et eksempel til dig her:
http://stackoverflow.com/questions/13372276/simple-way-to-transpose-columns-and-rows-in-sql

Hvis du ikke får det til at virke skriver du lige til mig igen.

mvh
Poul-Erik
pej@peprogrammering.dk


Kommentar
Fra : pedroso


Dato : 16-07-13 14:42

Ja nemlig, SuperDelphi. Men der skal så også summeres over rækkerne, fordelt på dage. Jeg bruger et program, som hedder NWA Quality Analyst, det er fantastisk til SPC på maskiner.

Der var sørme nogle eksempler med, som behandlede præcis min problemstilling. Jeg er lidt i tvivl om den summerer eller tager gennemsnittet af StopTime, det skal jeg have checket. Men ellers gør den hvad den skal. Det kom til at se sådan her ud:

TRANSFORM Avg([StopTime])

SELECT MIN([Start]) AS [MinStart], MAX([Start]) AS [MaxStart]

FROM [dbo.qry_Events] WHERE ( 0 = 1 )

GROUP BY DATEPART("yyyy",[Start]), DATEPART("y",[Start])

PIVOT [Kategori] IN ("A","B","C")

Godkendelse af svar
Fra : pedroso


Dato : 16-07-13 19:58

Tak for svaret SuperDelphi.

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177577
Tips : 31968
Nyheder : 719565
Indlæg : 6409070
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste