Vinnaren i pepparkakshustävlingen!
2013-02-06, 10:15
  #1
Medlem
Jag undrar vad man kan skriva för att få fram start-sluttider för en anställd.
Se nedanstående exempel:

Till exempel:

opid emp start to
---- ------ ----- ----
per ava 2013-02 2013-04
per tillsv 2013-05 null
nils ava 2012-03 2012-04
nils ava 2012-05 2012-06

en sql-sats ska sedan ge:

opid start to
----- ----- ----
per 2013-02 null
nils 2012-03 2012-06
Citera
2013-02-06, 10:47
  #2
Medlem
-TheDon-s avatar
Har per och nils varit inne på porr?
Citera
2013-02-06, 11:33
  #3
Moderator
Protons avatar
Det ser ut som att informationen ligger i en tabell. I sådana fall är det ju bara att skriva en simpel select. Vad är det som är svårt egentligen?
Citera
2013-02-06, 20:38
  #4
Medlem
John-Pauls avatar
ojojo, det här fungerar visserligen men...
Kod:
select opid
, min(start) as 'Tidigaste start'
, max(isnull([to],'null')) 'Senaste to'
from anstallda
group by opid

Olyckligt med null som representant för att en anställd inte slutat.
Full SQL ovan då ordet null alltid förväntas vara högre än allt annat som kan stå i strängen to.
Man kan nu heller inte representera ett äkta okänt avslut eftersom man redan använt representanten för okänt för något som inte hänt. De anställda som inte har slutat kan givetvis inte ha någon uppgift om när det inträffade men det är absolut inte det samma som att det är okänt när det inträffade.
Substitut för "inte slutat" och så anges tidsangivelser inte med textsträng utan ett datum med eller utan tid.
__________________
Senast redigerad av John-Paul 2013-02-06 kl. 21:20.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback