Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> MySQL - dwie serie danych w jednym zapytaniu
ktuvok
post 8.02.2004, 22:34:00
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
 
Start new topic
Odpowiedzi (1 - 3)
Method
post 9.02.2004, 09:39:12
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


--------------------
"zycia nie mierzy sie liczba oddechow,
ale liczba chwil, ktore zapieraja dech w piersi"
Go to the top of the page
+Quote Post
spenalzo
post 9.02.2004, 15:15:25
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 9.02.2004, 15:51:55
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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 04:26