2016-08-04 4 views
1

ich mit diesen Spalten eine Rechnungstabelle haben.,wie zwei verschiedene Abfragen in einer einzigen Abfrage mit MySQL ausgeführt werden?

id total date   country 
1 50 2016-01-25 USA 
2 40 2016-01-24 UK 
3 30 2016-01-22 France 
4 40 2016-01-26 UK 
5 50 2016-01-18 USA 
6 60 2016-02-20 USA 
7 70 2016-02-21 USA 
8 55 2016-02-18 UK 
9 75 2016-02-19 France 

und ich möchte von Monat USA Gesamtbetrag, NON USA Gesamtbetrag Gruppe bekommen, verwende ich diese Abfrage i

Gesamtbetrag nur USA erhalten
SELECT MONTH(date),YEAR(date),SUM(total) as usa_amount 
FROM Invoice 
WHERE YEAR(date) = '2016' 
    AND country='USA' 
GROUP BY MONTH(date) 

und ich bin immer dieses Ergebnis

MONTH(date) YEAR(date) usa_amount 
01   2016   100 
02   2016   130 

ich möchte dieses Ergebnis mit mysql Gewerkschaften oder irgendetwas?

MONTH(date) YEAR(date) usa_amount non_usa_amount 
01   2016   100  110 
02   2016   130  130 

Antwort

0

Verwenden Sie ein case im sum()

SELECT MONTH(date), 
     SUM(case when country = 'USA' then total else 0 end) as usa_amount, 
     SUM(case when country <> 'USA' then total else 0 end) as non_usa_amount 
FROM Invoice 
WHERE YEAR(date) = 2016 
GROUP BY MONTH(date) 
+0

Ich möchte Non USA Menge auch mit der gleichen Abfrage? –

+0

Ja, versuchen Sie es. Es wird funktionieren –

+0

thx viel juergen, diese Antwort ist genau das, was ich will, ist –

Verwandte Themen