Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pomoć oko SQL upita u PHPmyadmin za Prestashop

[es] :: MySQL :: Pomoć oko SQL upita u PHPmyadmin za Prestashop

[ Pregleda: 3556 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

wela
Beograd

Član broj: 52882
Poruke: 7
195.252.110.*



Profil

icon Pomoć oko SQL upita u PHPmyadmin za Prestashop01.04.2015. u 15:17 - pre 109 meseci
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.
Sve se menja osim kamenja
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.dynamic.sbb.rs.

Sajt: mysql.rs


+2377 Profil

icon Re: Pomoć oko SQL upita u PHPmyadmin za Prestashop01.04.2015. u 15:28 - pre 109 meseci
prvi upit vraca 11 kolona u rezultatu
drugi upit vraca 2 kolone u rezultatu

kako zelis da ih spojis?

zelis da dodas SUM( total_paid_real ) kao 12tu kolonu u prvi rezultat? ili nesto drugo
 
Odgovor na temu

wela
Beograd

Član broj: 52882
Poruke: 7
195.252.110.*



Profil

icon Re: Pomoć oko SQL upita u PHPmyadmin za Prestashop01.04.2015. u 15:35 - pre 109 meseci
Bogdane,

Hvala na brzom odgovoru. Da, želim da dodam Sum kao 12tu kolonu gde ću imati sortirano koliko je koji kupac ukupno potrošio.

Hvala.
Sve se menja osim kamenja
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.dynamic.sbb.rs.

Sajt: mysql.rs


+2377 Profil

icon Re: Pomoć oko SQL upita u PHPmyadmin za Prestashop01.04.2015. u 15:51 - pre 109 meseci
tu sada imas jedan problem, prvi upit teoretski moze da ima vise kolona sa istim id_customer a drugi upit ima za svaki id_customer samo jedan slog u rezultatu

na brzaka ovako nesto bi trebalo da sljaka

Code:

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( X.total_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 )
  JOIN (SELECT id_customer, SUM( total_paid_real ) suma FROM ps_orders GROUP BY id_customer) X USING (id_customer)


takodje bi mogao samo da ubacis u celu pricu i ps_orders i da se nadas da je optimizer dovoljno pametan

Code:

SELECT 
  A.firstname, A.lastname, A.email, A.birthday, B.phone, B.phone_mobile, B.address1, B.address2, B.postcode, B.city, C.name, X.suma
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 )
  JOIN ps_orders as X USING (id_customer)
GROUP BY X.id_customer


 
Odgovor na temu

wela
Beograd

Član broj: 52882
Poruke: 7
195.252.110.*



Profil

icon Re: Pomoć oko SQL upita u PHPmyadmin za Prestashop02.04.2015. u 08:03 - pre 109 meseci
Sa Group by sam uspeo da dobijem šta mi treba:

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

Hvala puno
Sve se menja osim kamenja
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.dynamic.sbb.rs.

Sajt: mysql.rs


+2377 Profil

icon Re: Pomoć oko SQL upita u PHPmyadmin za Prestashop02.04.2015. u 11:15 - pre 109 meseci
ne valja ti to, uradio si group by po firstname, lastname a treba da uradis po id posto moze da ti se desi da imas 2 komada sa istim firstname/lastname (vrlo cest slucaj)

 
Odgovor na temu

wela
Beograd

Član broj: 52882
Poruke: 7
195.252.110.*



Profil

icon Re: Pomoć oko SQL upita u PHPmyadmin za Prestashop02.04.2015. u 15:32 - pre 109 meseci
Da, video sam to posle. Sada sam stavio po GROUP BY po email-u koji ne može da se duplira.

Sve se menja osim kamenja
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.com
Via: [es] mailing liste

Sajt: mysql.rs


+2377 Profil

icon Re: Pomoć oko SQL upita u PHPmyadmin za Prestashop02.04.2015. u 16:21 - pre 109 meseci
stavi group by po id-u kako sam ti stavio u drugom primeru, po tom id-u
valjda imas index valjda je primarni u glavnoj tabeli ...
 
Odgovor na temu

[es] :: MySQL :: Pomoć oko SQL upita u PHPmyadmin za Prestashop

[ Pregleda: 3556 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.