2017-08-17 42 views
-1

,我有以下數據:如何顯示範圍的日期之間的數據

entry storenum busidate daily_budget 
1  1   2017-07-01 4000 
2  1   2017-07-02 1000 
3  1   2017-07-03 6000 
4  1   2017-07-04 7000 
5  1   2017-07-05 12000 

我需要顯示所有的日期(S)的範圍之間的數據。

我試圖顯示範圍日期(s)之間的所有數據。這裏是我當前的查詢:

SELECT 
(CASE WHEN a.busidate BETWEEN '2017-07-01' AND '2017-07-05' THEN a.daily_budget ELSE 0 END) as Ideal, 
b.store_name, b.storenum 
FROM dummy_daily a JOIN site_store b ON b.storenum=a.storenum 
WHERE b.storenum='1' 
GROUP BY a.storenum 

上面的查詢只給我2017-07-01結果,而不是2017-07-012017-07-05之間的數據。這裏是我的查詢結果的示例:

Ideal  store_name   storenum 
4000  Sunway Putra Mall 1 

我需要顯示日期範圍之間的所有數據。

+0

更新你的查詢,設置'GROUP BY a.busidate'並在'WHERE'子句中使用'DATE RANGE'條件。 –

+0

:P我認爲它也與日期範圍有關,但我意識到他使用日期範圍來確定多少daily_budget分配..唯一的問題實際上是「GROUP BY」 –

回答

0

感謝@Sumon Sarker作爲您的建議。你的建議是完全正確的 下面是日期(或多個)

SELECT 
a.daily_budget as Ideal, 
b.store_name, b.storenum 
FROM dummy_daily a JOIN site_store b ON b.storenum=a.storenum 
WHERE b.storenum='1' and a.busidate BETWEEN '2017-07-01' AND '2017-07-05' 
GROUP BY a.busidate 
0

的罪魁禍首可能是之間顯示的所有行的答案「GROUP BY」

試試下面的查詢

SELECT 
    b.storenum, 
    b.store_name, 
    (CASE 
     WHEN a.busidate BETWEEN '2017-07-01' AND '2017-07-05' 
     THEN a.daily_budget ELSE 0 END 
    ) AS Ideal 
    FROM dummy_daily a JOIN site_store b ON b.storenum=a.storenum 
    WHERE b.storenum=1 
    GROUP BY b.storenum,b.store_name, Ideal