結果を ID と日付の両方でグループ化する SQL クエリを Mysql で作成しています。日付は動的に決定され、単純な日時フィールド、または年と月または週の組み合わせのいずれかになります。年のケースについては、以下のクエリを参照してください。
SELECT t.transactionId, t.transactionDate, t.transactionProcessDate,
t.status, t.type, t.versionId, t.note, WEEKOFYEAR(t.transactionDate) as CW,
YEAR(t.transactionDate) as yr, (DATE_FORMAT(t.transactionDate, '%Y-%u')) as tDate
FROM transaction t
WHERE (t.status = 'A' or t.status = 'N')
GROUP BY t.transactionId , tDate
私が抱えている問題は、tDate でグループ化しようとすることです。
GROUP BY t.transactionId , tDate
同じ日付の重複を返します。
クエリを CW フィールドと yr フィールドでグループ化するように変更すると、
GROUP BY t.transactionId , CW, yr
重複することなく、期待される結果が得られます。
質問:によって生成されたフィールドによるグループ化に問題がありDATE_FORMAT
、返されたクエリで重複を認識できない可能性がありますか?
グループ化にのみ使用される CW と yr の 2 つのフィールドをクエリから完全に除外したいと思います。