![]() |
![]() |
![]()
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: 177 Pomógł: 6 Dołączył: 14.01.2003 Skąd: Warszawa Ostrzeżenie: (10%) ![]() ![]() |
o cholera !
nie mam pojecia ale jak wymozdzysz to podeslij bo jestem cholernie ciekaw -------------------- "zycia nie mierzy sie liczba oddechow,
ale liczba chwil, ktore zapieraja dech w piersi" |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Odwołaj sie drugi raz do tej samej tabeli (np. "Przedstawiciele AS Przedstawiciele"), i wywołaj jeszcze raz te same warunki dla drugiego odwołania, np. "AND Produkty2.KlasaProduku = 'B' ": itd.).
-------------------- |
|
|
![]()
Post
#4
|
|
![]() 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] |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 04:26 |