Portál AbcLinuxu, 19. července 2025 21:30
SELECT Uzivatele.Datumzapojeni, ( SELECT COUNT(vypocet.ID) FROM Uzivatele AS vypocet WHERE vypocet.Datumzapojeni <= Uzivatele.Datumzapojeni ) FROM Uzivatele GROUP BY Uzivatele.Datumzapojeni ORDER BY Uzivatele.Datumzapojeniale jak do toho zamotat i datum odpojení
SELECT YEAR(Uzivatele.Datumzapojeni), MONTH(Uzivatele.Datumzapojeni), ( SELECT COUNT(vypocet.ID) FROM Uzivatele AS vypocet WHERE vypocet.Datumzapojeni <= Uzivatele.Datumzapojeni ) FROM Uzivatele GROUP BY YEAR(Uzivatele.Datumzapojeni), MONTH(Uzivatele.Datumzapojeni) ORDER BY YEAR(Uzivatele.Datumzapojeni), MONTH(Uzivatele.Datumzapojeni)možná je nějaké jednodušší řešení, ale já ho nevidím, sečíst aktivní klienty k nějakému konkrétnímu datu je v pohodě: SELECT * FROM tbl WHERE datumzapojeni < datum AND datumodpojeni IS NULL
SELECT YEAR(Uzivatele.Datumzapojeni), MONTH(Uzivatele.Datumzapojeni), ( SELECT COUNT(vypocet.ID) FROM Uzivatele AS vypocet WHERE vypocet.Datumzapojeni <= Uzivatele.Datumzapojeni AND vypocet.Datumodpojeni IS NULL ) FROM Uzivatele GROUP BY YEAR(Uzivatele.Datumzapojeni), MONTH(Uzivatele.Datumzapojeni) ORDER BY YEAR(Uzivatele.Datumzapojeni), MONTH(Uzivatele.Datumzapojeni)nad cca 2k záznamy ale trvá cca 8 sec, tak pokud by existovalo něco jednoduššího ...
SELECT COUNT(ID) FROM Uzivatele WHERE Datumzapojeni < "2012-12-31" AND Datumodpojeni IS NULLfunguje správně i podle čísel ale i tak ty čísla úplně nesedí (ne v tom zde uvedeném příkladu), protože ty GROUP BY YEAR(Uzivatele.Datumzapojeni), MONTH(Uzivatele.Datumzapojeni) definují začátky měsíců, což je fatální takže jak jsem psal, přepíšu to na čistější řešení
SELECT YEAR(Uzivatele.Datumzapojeni), MONTH(Uzivatele.Datumzapojeni), COUNT(Uzivatele.ID) FROM Uzivatele WHERE Uzivatele.Datumzapojeni IS not NULL and Uzivatele.Datumzapojeni IS NULL GROUP BY YEAR(Uzivatele.Datumzapojeni), MONTH(Uzivatele.Datumzapojeni) ORDER BY YEAR(Uzivatele.Datumzapojeni), MONTH(Uzivatele.Datumzapojeni)Jestli tam mám chyby nebo jestli jsem mimo, tak mě opravte.
select trunc(dat_in,'MM'),count(*) from ... where dat_out is null or trunc(dat_in,'MM') < trunc(dat_out,'MM') group by trunc(dat_in,'MM')
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.