2016-10-10 41 views
1
/* First query */ 
SELECT YEAR, SUM(amount) AS total 
FROM accounts 
WHERE ((MONTH >= '10' || 
     MONTH <= '12' && YEAR = '2015') && 
     (MONTH >= '1' || 
     MONTH <= '3' && YEAR = '2016')) 
GROUP BY YEAR 

/* Second query */ 
SELECT YEAR, SUM(amount) AS total 
FROM accounts 
WHERE ((MONTH >= '1' || 
     MONTH <= '3' && YEAR = '2015') && 
     (MONTH >= '5' || 
     MONTH <= '10' && YEAR = '2015')) 
GROUP BY YEAR 

第一個查詢返回基於year的兩行。但第二個查詢只返回一行。MYSQL Select Query我想要兩行的基礎上哪裏條件

我知道我是按年份分組完成的,但是我希望兩行滿足我的兩個條件匹配的地方。

還有其他建議嗎?

這裏是輸出。

output1 output2

回答

1

檢查是這樣的: -

SELECT YEAR, SUM(amount) AS total 
FROM accounts 
WHERE (((MONTH >= '1' || MONTH <= '3') && YEAR = '2015') || 
((MONTH >= '5' || MONTH <= '10') && YEAR = '2015')) 
GROUP BY YEAR 

OR

SELECT YEAR, SUM(amount) AS total 
FROM accounts 
WHERE (MONTH >= '1' || MONTH <= '3') && YEAR = '2015' 
GROUP BY YEAR 
Union all 
SELECT YEAR, SUM(amount) AS total 
FROM accounts 
WHERE (MONTH >= '5' || MONTH <= '10') && YEAR = '2015' 
GROUP BY YEAR 
+0

沒有你去錯了trake 在第一個查詢我有兩個列和第二querry我有因爲按年份分組排列一次.. 是否有任何對ge的查詢t兩行從我的兩個條件,如 WHERE 1。(((MONTH> ='1'|| MONTH <='3')&& YEAR ='2015')|| 2.((MONTH> ='5'|| MONTH <='10')&& YEAR ='2015')) 那麼我怎麼能得到兩排任何解決方案 –

+0

聯盟所有將修復第二個查詢 –

+0

謝謝你太棒了,你節省了我的時間 –