-1
その月がゼロだったとしても過去12ヶ月に基づいてToxicologyTestsから合計結果を得る次のクエリがあります。過去1年間の結果を過去30日間まで0に制限する
SELECT y, m, Count(ToxicologyTests.receiveDate) as count
FROM (
SELECT y, m
FROM (
SELECT YEAR(CURDATE()) y
UNION ALL SELECT YEAR(CURDATE())-1) years,
(
SELECT 1 m
UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4
UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8
UNION ALL SELECT 9 UNION ALL SELECT 10 UNION ALL SELECT 11 UNION ALL SELECT 12
) months
) ym
LEFT JOIN ToxicologyTests
ON ym.y = YEAR(ToxicologyTests.receiveDate)
AND ym.m = MONTH(ToxicologyTests.receiveDate)
WHERE (
y=YEAR(CURDATE())
AND m<=MONTH(CURDATE())
)
OR (
y<YEAR(CURDATE())
AND m>MONTH(CURDATE())
)
GROUP BY y, m
ゼロがあっても1ヶ月あたりのテスト数が正しく出力されます。私は過去12ヶ月から過去30日間にこれを変えようとしているので、あまりにも多くのことがありました。助言がありますか?
MYSQL
、私はアプリケーションコード – Strawberry
にゼロを処理したい:私は、WHERE句の変更しました'FROM'がありません。クエリが正しいことを確認してください – yaitloutou