2016-08-25 40 views
1

我想統計第二天上午7點和上午7點之間有多少個1和0的值。第二天早上7點到早上7點之間的選擇

這裏認爲一個酒吧在上午10點開放,但第二天上午7點關閉,他們希望他們的'報告'是在這一特定的一天。

所以7am之前的所有數據都需要添加到前一天。

SELECT DATE(delivered), COUNT(*) total, 
sum(case when isbag = '0' THEN 1 ELSE 0 END) CloakCount, 
sum(case when isbag = '1' THEN 1 ELSE 0 END) BagCount 
FROM Wardrobe_CloakTable GROUP BY DATE(delivered) 

這會給我幾乎我想要的,問題是我需要在上午7點之前計算所有這些數據,前一天。

+0

只是想提一提,交貨是在我的數據庫 –

+0

你想計數** ** CloakCount和時間字段** ** BagCount? –

+0

是的,正確的。當isbag = 0時,它是一件斗篷。當isbag = 1時,它是一個袋子......但主要問題是它需要在第二天上午7點到上午7點之間。 –

回答

1

像這樣的東西應該工作:

SELECT 
CASE WHEN HOUR(delivered) < 7 
    THEN CONCAT(DATE(DATE_ADD(delivered, INTERVAL -1 day)), ' 07:00:00') 
    ELSE CONCAT(DATE(delivered), ' 07:00:00') 
    END as startTime, 
CASE WHEN HOUR(delivered) < 7 
    THEN CONCAT(DATE(delivered), ' 07:00:00') 
    ELSE CONCAT(DATE(DATE_ADD(delivered, INTERVAL 1 day)), ' 07:00:00') 
    END as endTime, 
COUNT(*) total, 
sum(case when isbag = '0' THEN 1 ELSE 0 END) CloakCount, 
sum(case when isbag = '1' THEN 1 ELSE 0 END) BagCount 
FROM Wardrobe_CloakTable GROUP BY startTime, endTime; 
+0

這真是太棒了..給我的是我想要的。總數/包/斗篷的日期與信息..將進一步測試計數,但謝謝! –

相關問題