2012-10-24 64 views
0

我有一個查詢,計算本週的銷售數量。它看起來像這樣:是否有可能爲每個select有一個不同的where子句的mysql查詢?

SELECT DAYNAME(SOLD), COUNT(*) FROM SALES_DATA 
WHERE SOLD BETWEEN '2012/10/14 00:00:00' AND '2012/10/21 00:00:00' AND STORE_ID = 1010   GROUP BY DAYNAME(SOLD) ORDER BY DAY(SOLD); 

和輸出是這樣的:

DAYNAME(SOLD) COUNT(*) 
Sunday   400 
Monday   375 
Etc.   Etc. 

我想爲比較之前有從周銷量的第三列。但要做到這一點,我需要有一個單獨的where子句與不同的日期範圍。所以我的問題是我將如何實現這一目標?我很新的MySQL,並沒有發現這樣的事情。聯合會起作用嗎?我不太清楚這些是如何工作的。我想要的輸出將是這樣的:

DAYNAME(SOLD) COUNT(*) COUNT(*) 
Sunday   400  550 
Monday   375  250 
Etc.   Etc.  Etc. 

在此先感謝!

回答

1

可以使用的結構是這樣的:

select stuff1.common_col, stuff1.col1, stuff2.col2 
from 
(select common_col, col1 from somewhere where ...) as stuff1 
(select common_col, col1 from somewhere where ...) as stuff2 
where stuff1.common_col = stuff2.common_col 
+0

我想你的建議,沒有運氣。也許我做得不對。以下是我嘗試過的:'select lastweek.DAYNAME(已售出),lastweek.COUNT(*),prevweek.COUNT(*) from (從SALES_DATA中選擇DAYNAME(已售出),COUNT(*),其中已售出'2012/10/14 00:00:00'AND'2012/10/21 00:00:00'AND STORE_ID = 1010)作爲lastweek (從SALES_DATA選擇DAYNAME(已售出),COUNT(*)COUNT(*)已售出'2012/10/07:00:00:00'AND'2012/10/14 00:00:00'and STORE_ID = 1010)as prevweek where lastweek.DAYNAME(SOLD)= prevweek.DAYNAME(已售出)GROUP BY DAYNAME(已售出)ORDER BY DAY(已售);」你知道我做錯了什麼嗎? – user1504583

+0

group by子句看起來應該放在每個子查詢中 – Randy

相關問題