ktuvok
8.02.2004, 22:34:00
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
Method
9.02.2004, 09:39:12
o cholera !
nie mam pojecia ale jak wymozdzysz to podeslij bo jestem cholernie ciekaw
spenalzo
9.02.2004, 15:15:25
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.).
uboottd
9.02.2004, 15:51:55
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]
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.