próbuję pobrać z bazy pacjentów, którzy skorzystali z usługi w poszczególnych dniach (lub tygodniach, miesiącach - zależy od wyboru użytkownika) w danym przedziale czasu, ale tylko pacjentów NOWYCH, czyli wcześniej nie pobierali żadnych usług. Np. w wyniku mam:
dzien | nowi
11.02.2011 | 4
itd.
Załóżmy, że chodzi nam o dni. Mam tabelę:
teeth_services a w niej m.in. dwie kolumny: idpatient oraz date czyli data wykonania usługi.
Wykombinowałem coś takiego (NIE DZIAŁA):
SELECT DISTINCT ON (kiedy) to_char(teeth_services.date, 'YYYY-MM-DD') AS kiedy, count(teeth_services.idpatient) AS amount FROM teeth_services WHERE teeth_services.date IS NOT NULL AND teeth_services.idpatient NOT IN ( (SELECT t.idpatient FROM teeth_services AS t WHERE t.date < kiedy AND t.date IS NOT NULL ) ) GROUP BY kiedy ORDER BY kiedy ASC
Wyskakuje, że kolumna 'kiedy' nie występuję. Jak widać próbuję w warunku where sprawdzić czy idpatient znajduje się w polach zwróconych przez podzapytanie. Domyślam się, że tutaj coś źle robię.
Jak to poprawić

