2017-04-16 176 views
1

我想連接兩個引用同一個表的查詢。我想知道我在時間範圍內得到了多少水果,其中有多少不是新鮮的。如何連接兩個sql查詢?

查詢1

SELECT COUNT(id) FROM fruits 
WHERE date>='2017-04-01' AND date<='2017-04-30' 

查詢2

SELECT COUNT(id) FROM fruits 
WHERE fresh='no' 
+1

在時間範圍**中不是新鮮的數字**?或者一般? –

+0

那在時間範圍內。 – Wiskoza

回答

2

可以使用CASE表達式(注:在這個問題我解釋「他們」的被引用水果的時間如果你想要水果一般刪除where子句並將謂詞移動到另一個類似的表達式表達式中,範圍不是水果)

SELECT COUNT(id), 
     SUM(CASE WHEN fresh = 'no' THEN 1 ELSE 0 END) 
FROM fruits 
WHERE date>='2017-04-01' AND date<='2017-04-30' 
+0

不需要使用'fresh ='no''就足夠了。 –

+0

@WillemVanOnsem在MySQL中工作,但不可移植。 –

0

我會用:

SELECT COUNT(id) FROM fruits 
WHERE date >= '2017-04-01' AND date <= '2017-04-30' AND fresh = 'no'; 

在這兩個查詢1和2,你想在同一列,只是想獲得兩者的交集,所以只需添加WHERE子句與「AND」。

+0

這將只計算時間範圍內的所有壞果子。我很確定Wiskoza希望在時間範圍內獲得所有水果的總量,但也有多少人不是新鮮的。您的答案缺少總金額。 – naslund

+0

對不起,我誤解了這個問題 – yasgur99