2016-08-25 16 views
1

私は翌日午前7時から午前7時までにどれくらいの1と0の値を数えたいと思うのですか?翌日の午前7時から午前7時までの間に選択

ここでは、午前10時に開店しますが、翌日午前7時に閉鎖するバーは、この特定の日の 'レポート'を希望します。

です。そのため、午前7時前のすべてのデータを前日に追加する必要があります。

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

それはちょうど華麗です。私が欲しいものを私に与えます!情報のある日付の合計/バッグ/クロークの数.. ..さらにテストしますが、ありがとう! –

関連する問題