![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 243 Pomógł: 0 Dołączył: 30.11.2003 Ostrzeżenie: (0%) ![]() ![]() |
Siedzę od paru godzin i nie mogę wykombinować:
W tabeli Sprzedaz przechowuję dane dotyczące sprzedaży oraz identyfikatory produktów. W tabeli Produkty - dane o produktach. W tabeli Przedstawiciele - o przedstawicielach. Potrzebuję pobrać sumy sprzedaży dokonanych przez przedstawicieli w zadanym okresie, ale osobno dla dwóch grup produktów - A i B. Efektem ma być zestawienie w postaci: Przedstawiciel | SumaSprzedazy_A | SumaSprzedazy_B Napisałem na razie jedynie dla klasy A: SELECT Przedstawiciele.ImieINazwiskoPrzedstawiciela, SUM(Sprzedaz.CenaJednostkowa * Sprzedaz.Ilosc) FROM Sprzedaz, Produkty, Przedstawiciele WHERE Produkty.IDProduktu = Sprzedaz.IDProduktu AND Produkty.KlasaProduku = 'A' AND Przedstawiciele.IDPrzedstawiciela = Sprzedaz.IDPrzedstawiciela AND Sprzedaz.DataSprzedazy > '$JakaśData' AND Sprzedaz.DataSprzedazy < '$JakaśInnaData' GROUP BY Sprzedaz.IDPrzedstawiciela Jak tę drugą kolumnę "wcisnąć" do tego SQL'a? MySQL 4.0.16. Pozdrawiam, Krzysiek |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 384 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Chorzow Ostrzeżenie: (0%) ![]() ![]() |
No takie sklejenie akurat namiesza strasznie, szczegolnie z grupowaniem.
Cos takiego: [sql:1:5a5ed4fa70] SELECT Przedstawiciele.ImieINazwiskoPrzedstawiciela, SUM(if(Produkty.KlasaProduku = 'A' ,Sprzedaz.CenaJednostkowa * Sprzedaz.Ilosc,0)) as sum_a, SUM(if(Produkty.KlasaProduku = 'B',Sprzedaz.CenaJednostkowa * Sprzedaz.Ilosc,0)) as sum_b, FROM Sprzedaz, Produkty, Przedstawiciele WHERE Produkty.IDProduktu = Sprzedaz.IDProduktu AND (Produkty.KlasaProduku = 'A' OR Produkty.KlasaProduku = 'B') AND Przedstawiciele.IDPrzedstawiciela = Sprzedaz.IDPrzedstawiciela AND Sprzedaz.DataSprzedazy > '$JakaśData' AND Sprzedaz.DataSprzedazy < '$JakaśInnaData' GROUP BY Sprzedaz.IDPrzedstawiciela [/sql:1:5a5ed4fa70] |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.10.2025 - 20:58 |