Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Znowu left joiny
kasztan
post
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 9.05.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Cześć,
kolejny dzień ślęczenia nad zapytaniem i nic.
Wątek http://forum.php.pl/viewtopic.php?t=6692 przestudiowałem dość szczegółowo i nie potrafiłem zrobić swojego zapytania.

Mam 3 table: agenci, firmy, produkty. Chcę zliczyć ile każdy agent pozyskał produktów i firm. Nie będę rozpisywał poszczególnych atrybutów dla każdej z tabel. Wszystko widać z zapytań.
Może jednak nie widać, bo coś się nie mogę doczekać odpowiedzi. Więc powiem tylko te najważniejsze:
agents_pl: agent_id
firms_pl_transact: firm_id, agent_id
products_pl_transact: product_id, firm_id, agent_id.

Zapytanie o liczbę firm wygląda tak i działa o.k.:
[sql:1:b467487e3b]
select a.firstname 'Imię', a.lastname 'Nazwisko', count(f.agent_id) as 'Liczba firm'
from agents_pl a
left join firms_pl_transact f on (a.agent_id = f.agent_id)
WHERE
a.active_i = 1
AND
a.agent_id not in (1, 2)
group by a.agent_id
order by 'Liczba firm' desc, a.lastname;
[/sql:1:b467487e3b]

Analogicznie zapytanie o liczbę produktów wygląda tak i działa o.k.:
[sql:1:b467487e3b]
select a.firstname 'Imię', a.lastname 'Nazwisko', count(p.agent_id) as 'Liczba produktów'
from agents_pl a
left join products_pl_transact p on (a.agent_id = p.agent_id)
WHERE
a.active_i = 1
AND
a.agent_id not in (1, 2)
group by a.agent_id
order by 'Liczba produktów' desc, a.lastname;
[/sql:1:b467487e3b]

No i teraz potrzebuję zapytania, które da mi sumę tych firm i produktów.
Niestety w tej postaci, jak poniżej, dostaję co prawda jakieś wyniki, ale są bzdurne.
[sql:1:b467487e3b]
select a.firstname 'Imię', a.lastname 'Nazwisko', count(p.agent_id) + count(f.agent_id) as 'Liczba umów'
from agents_pl a
left join products_pl_transact p on (a.agent_id = p.agent_id)
left join firms_pl_transact f on (a.agent_id = f.agent_id)
WHERE
a.active_i = 1
AND
a.agent_id not in (1, 2)
group by a.agent_id
order by 'Liczba umów' desc, a.lastname
[/sql:1:b467487e3b]

Help me.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kasztan
post
Post #2





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 9.05.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Cytat
szkoda ze nie napisales pod czym piszesz te zapytania. wnioskuje ze srednikow znajdujacych sie w kodzie ze jest to (chyba) mysql.

tak, MySql

Cytat
wydaje mi sie ze mysql obsluguje juz podzapytania. jesli nie to chyba bedziesz jednak musial to rozbic na 2 select'y
Pozdrawiam


Niestety, otrzymuje taki komunikat o błędzie, w sumie nie wiem, czy to jest wina błędnego zapytania, czy tego, że wersja MySql'a na której pracuję (4.0.14) nie obsługuje podzapytań.

Kod
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT a.firstname, a.lastname, count(f.agent_id) 'Liczba' FRO
Go to the top of the page
+Quote Post

Posty w temacie


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: 5.10.2025 - 22:07