

SQL dotaz - počet zaměstnanců
Dobrý den,
mám tabulku „zamestnanci“ a v ní sloupce „zamestnan_od“ a „zamestnan_do“ s hodnotami typu „timestamp“.
Vzorek dat:
<null>;2009-01-13 00:00:00.0
<null>;<null>
<null>;2015-08-09 00:00:00.0
2012-06-26 00:00:00.0;<null>
<null>;2005-04-25 00:00:00.0
<null>;2002-04-25 00:00:00.0
1992-02-01 00:00:00.0;2014-04-30 00:00:00.0
Potřebuji udělat spojnicový graf, který zobrazí počet zaměstnanců v závislosti na čase. Bohužel u některých není vyplněno ani datum „zamestnan_od“. Představoval bych si, že tito budou přičteni k prvnímu známému datu „zamestnan_od“.
Výsledkem by pak mělo být toto:
1992-02-01 00:00:00.0;6
2002-04-25 00:00:00.0;5
2005-04-25 00:00:00.0;4
2009-01-13 00:00:00.0;3
2012-06-26 00:00:00.0;4
2014-04-30 00:00:00.0;3
2015-08-09 00:00:00.0;2
Můžete mi prosím poradit nebo alespoň nasměrovat jak na to pomocí SQL?
Jak to myslíš "k prvnímu známému"? Ten datum je snad jenom jeden.
Myslím tím nejmenší datum z celé tabulky.
Zaměstnanci u kterých nevíme kdy byli přijati tak je k tomuto datu připočítáme.
v tom případě musíš místo null dosadit datum, které splní podmínku horní i dolní meze.
edit: anebo hodnotu null zohlednit v podmínce. Tj. zapsáno symbolicky: select * where (dat_prijeti <= datum OR dat_prijeti IsNull) AND (dat_odchodu => datum OR dat_odchodu IsNull)
OK, ale co s těmi počty zaměstnanců?
však na tuto podmínku aplikuješ count a jsi tam, ne? To celé dáš do selectu, který ti vygeneruje seřazené datumy a máš hotovo.
edit: nebo po mně chceš abych si osvěžil znalost SQL?
:) prosím, osvěž se
Já to právě nějak nedokážu složit :/
V prípade, že databáza podporuje RANK alebo CTE, dalo by sa to ešte výkonnostne optimalizovať.
ooo, děkuji. Super, funguje!