Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> MySQL - dwie serie danych w jednym zapytaniu
ktuvok
post
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
Go to the top of the page
+Quote Post
Method
post
Post #2





Grupa: Zarejestrowani
Postów: 177
Pomógł: 6
Dołączył: 14.01.2003
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


o cholera !
nie mam pojecia ale jak wymozdzysz to podeslij bo jestem cholernie ciekaw
Go to the top of the page
+Quote Post
spenalzo
post
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.).
Go to the top of the page
+Quote Post
uboottd
post
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]
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 09:54