以下のクエリでは、日付範囲に従ってケース列に名前を付けることが期待されますが、すべてデフォルトでエラーになります。何が欠けていますか? mySQL で作業してからかなりの時間が経ちました。今日、明日、30日、60日、90日の期限切れの間隔に基づいてグループ化しようとしています。
SELECT DATE_SUB(CURDATE(), INTERVAL 1 DAY)AS rDate,
CURDATE()AS rDate,DATE_ADD(CURDATE(), INTERVAL 1 DAY)AS rDate,
DATE_ADD(CURDATE(), INTERVAL 7 DAY)AS rDate,
DATE_ADD(CURDATE(), INTERVAL 14 DAY)AS rDate,
DATE_ADD(CURDATE(), INTERVAL 30 DAY)AS rDate,
DATE_ADD(CURDATE(), INTERVAL 60 DAY)AS rDate,
DATE_ADD(CURDATE(), INTERVAL 90 DAY)AS rDate,
CASE a.nextDueDate
WHEN a.nextDueDate < CURDATE() THEN 'Overdue'
WHEN a.nextDueDate > CURDATE() AND a.nextDueDate < (DATE_ADD(CURDATE(), INTERVAL 7
DAY))THEN '7 Days'
WHEN a.nextDueDate > CURDATE() AND a.nextDueDate < (DATE_ADD(CURDATE(), INTERVAL
14 DAY))THEN '15 Days'
WHEN a.nextDueDate > CURDATE() AND a.nextDueDate < (DATE_ADD(CURDATE(), INTERVAL 30 DAY))THEN '30 Days'
WHEN a.nextDueDate > CURDATE() AND a.nextDueDate < (DATE_ADD(CURDATE(), INTERVAL 60 DAY))THEN '60 Days'
WHEN a.nextDueDate > CURDATE() AND a.nextDueDate < (DATE_ADD(CURDATE(), INTERVAL 90 DAY))THEN '90 Days'
ELSE 'Error'
END,
g.groupId,g.name AS groupName,l.logId,l.name AS logName, i.itemID,
i.name AS itemName, le.userName,completed, i.optimalMin,i.optimalMax ,le.value,
u.name AS unitDescription,
g1.parentId AS parentId1, g1.name AS group1Name,g2.parentId AS parentId2, g2.name
AS group2Name,
g3.parentId AS parentId3, g3.name AS group3Name,
a.name AS activityName,scheduleType,scheduleInterval,a.details,nextDueDate
FROM logExceptions le
INNER JOIN logs l ON l.logID = le.logID
INNER JOIN groups g ON g.groupId = l.groupId
INNER JOIN items i ON le.itemId = i.itemId
INNER JOIN activities a ON l.logId = a.logId
LEFT JOIN units u ON i.unitId = u.unitId
LEFT JOIN groups g1 ON g.parentId = g1.groupId
LEFT JOIN groups g2 ON g1.parentId = g2.groupId
LEFT JOIN groups g3 ON g2.parentId = g3.groupId
WHERE nextDueDate IS NOT NULL