Strona 1 z 1

sql łączenie tabel a funkcja count(*)

: 18 gru 2010, 19:50
autor: _Ewelina_
Problem jest taki: mam tabele pacjenci(id, nazwisko, data_urodzenia) szczepionki(seria,nazwa, ilosc, cena, grupa_wiekowa) i zaszczepienia (id, seria, data_zabiegu)
Pytanie wygląda następująco: przedstaw raport podsumowujący koszty całości akcji szczepien w 2009 roku.
kombinowałam cos tak:

Kod: Zaznacz cały

select count(*) from Zaszczepienia Where Data_zabiegu like '%2009' 
Group by Seria;
wyświetla ilosc zabiegów w poszczególnych seriach, wiec wyglada o.k.

ale nie mam już bladego pojęcia jak to co mi wychodzi pomnożyć przez cene każdej serii z tabeli Szczepionki i z tego wszytkiego jeszcze zliczyc sume, a wszystko to w jednym poleceniu lub perspektywie, POMOCY!!!

Odp: sql łączenie tabel a funkcja count(*)

: 19 gru 2010, 10:15
autor: kolgreen
Na twoje pytanie: "przedstaw raport podsumowujący koszty całości akcji szczepien w 2009 roku" zrobiłbym takie zapytanie:

jesli chodzi ci o raport kosztów dla poszczególnych serii w danym roku:

Kod: Zaznacz cały

SELECT s.seria, SUM(s.cena) as koszt FROM zaszczepienia z, szczepionki s WHERE z.data_zabiegu LIKE '%2009' AND s.seria=z.seria GROUP BY z.seria;
jeśli tylko raport kosztów całkowitych:

Kod: Zaznacz cały

SELECT SUM(s.cena) as koszt FROM zaszczepienia z, szczepionki s WHERE z.data_zabiegu LIKE '%2009' AND s.seria=z.seria;

Kilka uwag:

1.Dlaczego w zaszczepieniach nie ma id pacjenta? Nie wiadomo kto był kiedy szczepiony i w sumie tabela z pacjentami jest trochę w tym wypadku zbędna. Tabela pacjenci powinna też mieć pole z imieniem w końcu może się szczepić cała rodzina. Najlepiej też dodać pole z peselem.

2.Sprawdź czy pole data_zabiegu jest typu date, bo powinno być "like '2009%",
ponieważ format daty jest taki: 2009-11-29, obawiam się, że masz to jako pole tekstowe.

Odp: sql łączenie tabel a funkcja count(*)

: 19 gru 2010, 12:42
autor: _Ewelina_
w tabeli zaszczepienia jest id_pacjenta, a w pacjentach mam wiecej atrybutów, podalam tylko te najważniejsze, jesli chodzi o pole data to faktycznie zadeklarowalam je jako pole tekstowe, wielkie dzieki za podpowiedz.

Odp: sql łączenie tabel a funkcja count(*)

: 22 gru 2010, 19:04
autor: leon1313