Šta je novo?

Pomoć oko ugnježdenog SQL upita u Prestashop

Nocna ptica

Čuven
Učlanjen(a)
27.03.2004
Poruke
217
Poena
619
Potrebno mi je da iz phpMyadmin napravim izveštaj koji sadrži osnovne podatke o kupcima (ime, prezime, telefon, adresa, država) i ukupna suma koju su potrošili.
Uspeo sam da dobijem šta mi treba iz dva različita upita, ali kako nemam dovoljno iskustva sa SQLom, ne ide mi nikako da ih spojim.
Prvi deo sam dobio tako što sam koristio sledeći upit:

Kod:
SELECT A.firstname, A.lastname, A.email, A.birthday, B.phone, B.phone_mobile, B.address1, B.address2, B.postcode, B.city, C.name
FROM ps_customer AS A
LEFT JOIN ps_address AS B ON ( B.id_customer = A.id_customer ) 
LEFT JOIN ps_country_lang AS C ON ( C.id_country = B.id_country )

A ukupna suma koja je potrošena po id_customer sam dobio sledećim upitom:
Kod:
SELECT id_customer, SUM( total_paid_real ) 
FROM ps_orders
GROUP BY id_customer

Ono što mi treba je da objedinim ova dva upita u jedan i dobijem jedan izveštaj, probao sam dosta varijanti, ali negde sam nešto prevideo.

Hvala unapred.
 
SELECT u SELECT upitu nije pametna ideja, ali je izvodljiva :) Daj mi SQL export sa nekim podacima pa cu da ti napisem upit.
 
SELECT u SELECT upitu nije pametna ideja, ali je izvodljiva :) Daj mi SQL export sa nekim podacima pa cu da ti napisem upit.

Nije mi bila namera SELECT u SELECT, nego da od ova dva upita napravim jedan koji radi.
Uspeo sam da rešim problem tako što sam napravio sledeći upit:

SELECT A.firstname, A.lastname, A.email, A.birthday, B.phone, B.phone_mobile, B.address1, B.address2, B.postcode, B.city, C.name, SUM(D.totail_paid_real)
FROM ps_customer AS A
LEFT JOIN ps_address AS B ON ( B.id_customer = A.id_customer )
LEFT JOIN ps_country_lang AS C ON ( C.id_country = B.id_country )
LEFT JOIN ps_orders AS D ON (A.id_customer=D.id_customer) GROUP BY 1,2
 
Sta ces dobiti ako imas dva korisnika sa istim imenom i prezimenom?

Pozdrav
 
Onda ovako?

SELECT A.id_customer,A.firstname, A.lastname, A.email, A.birthday, B.phone, B.phone_mobile, B.address1, B.address2, B.postcode, B.city, C.name, SUM(D.totail_paid_real)
FROM ps_customer AS A
LEFT JOIN ps_address AS B ON ( B.id_customer = A.id_customer )
LEFT JOIN ps_country_lang AS C ON ( C.id_country = B.id_country )
LEFT JOIN ps_orders AS D ON (A.id_customer=D.id_customer)
GROUP BY 1
 
Sada sam ih sve okupio kako treba. Hvala na ukazanaoj grašci.
 
Nazad
Vrh Dno