Avatar billede the_raze Nybegynder
22. marts 2009 - 19:35 Der er 4 kommentarer

Sjovt lille SQL spørgsmål

Hej,

Jeg står og har noget data om folks tilstedeværelse i stil med følgende:

UserId    TilstedeKode    Dato        Syg*    Sygeperiode*
1          T                02-03-2009  0      0
1          S                03-03-2009  1      1
1          T                04-03-2009  0      0
1          S                05-03-2009  1      1
1          S                06-03-2009  1      0
1          W                07-03-2009  1      0
1          W                08-03-2009  1      0

T = Tilstede, S = Syg, W = Weekend

Det er kun UserId, TilstedeKode og Dato som reelt ligger som data i databasen. Syg og Sygeperiode skal udregnes ud fra mit SQL-udtræk.

Syg er såmænd bare en indikator om Tilstedekode er lig med S eller ej - som sådan behøves den ikke i mit udtræk, det er blot for at vise at er man syg op til en weekend, så betegnes man som værende syg i weekenden (til brug ved udregning af sygeperioden - dvs hvis man også var syg den efterfølgende mandag 09-03-2009, så ville det kun blive betegnet som én sygeperiode).

Hvordan laver jeg et SQL udtræk på ovenstående, der for hver bruger giver mig dennes samlede antal sygedage + antal sygeperioder - for ovenstående skulle den altså give 5 sygedage og 2 sygeperioder.

Tusind tak for jeres hjælp på forhånd :)
Avatar billede arne_v Ekspert
22. marts 2009 - 19:42 #1
samlet antal syge dage er nem at lave i SQL:

SELECT SUM(syg) FROM tabel WHERE bla bla
Avatar billede arne_v Ekspert
22. marts 2009 - 19:44 #2
Og hvis du virkeligt har sygeperiode så kan den laves lige sådan.
Avatar billede arne_v Ekspert
22. marts 2009 - 19:46 #3
Men hvis du nu ikke har de kolonner.

Så er det straks mere tricky.

Jeg tror at jeg vil anbefale:

SELECT * FROM tabel ORDER BY userid,dato

og så lade applikationen stå for optællingen.

Det bliver for rodet at lave i SQL.
Avatar billede the_raze Nybegynder
22. marts 2009 - 19:55 #4
Sygedage optællingen er jeg med på - men som du selv siger, så er perioderne tricky. Skal bruges til en report i reporting services - og ku umiddelbart ik lige lure at lade reporting services stå for optælling af perioder.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester