Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PostgreSQL][SQL] pobranie danych do statystyk
Forum PHP.pl > Forum > Przedszkole
rasten
Witam, mam problem z ułożeniem zapytania, które ma pobierać sumę przychodów w poszczególnych dniach.
Mam takie dwie tabele (wersja okrojona):
- wizyta gdzie mam kolumnę date typu timestamp i kolumne idusluga czyli klucz obcy
- usluga z kolumną cena typu integer

Narazie mam takie zapytanie
  1. SELECT DISTINCT ON (date) to_char(wizyta.date, 'YYYY-MM-DD') AS date, sum(usluga.cena) AS cena
  2. FROM wizyta
  3. LEFT JOIN usluga
  4. ON wizyta.idusluga = wizyta.idusluga
  5. WHERE
  6. wizyta.date IS NOT NULL
  7. GROUP BY date

ale niestety to nie działa. Jak takie zapytanie powinno wyglądać?

EDIT://
dobra nieważne, sam sobie poradziłem. Zamieniłem as date na as data i to samo w group by.
Valdi_B
W Twojej kwerendzie widzę 2 "usterki":

1. SELECT DISTINCT ON ...
To "ON" jest niepotrzebne. ON używa się w JOIN.

2. ON wizyta.idusluga = wizyta.idusluga
Masz 2 razy "wizyta". Zmień jedno wystąpienie na "usluga".

Jeszcze 2 uwagi:
1. Spróbuj może "obejdzie się" bez rzutowania na typ (date).
2. "date" jest typem pola. Unikaj używania słów kluczowych jako nazw tablic / kolumn.
Raczej stosuj nazwę "coś mówiącą" co to za data.
Może np. dat_wyk (data wykonania usługi).

Gdybyś w bazie danych (w różnych tabelach) miał daty różnych rzeczy i nazywał wszystkie "date", to dopiero byś się musiał zastanawiać co jest co (zwłaszcza gdy takie różne daty byś miał w jednej kwerendzie.

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.