Я хочу получить максимальную дату публикации, а затем максимальную дату обработки. Когда я пытаюсь использовать MAX (a.processdate), это не сработает из-за того, что группа by и другой MAX уже используются.
SELECT f.PARENTACCOUNT
, MAX(f.POSTDATE) AS [Post Date]
, a.ProcessDate
, s.type
, CONCAT(n.FIRST, ' ', n.MIDDLE, ' ', n.LAST) AS [Member Name]
, s.BALANCE
FROM dbo.FMHISTORY f
JOIN dbo.ACCOUNT a
ON f.PARENTACCOUNT = a.ACCOUNTNUMBER
JOIN dbo.NAME n
ON f.PARENTACCOUNT = n.PARENTACCOUNT
AND a.ProcessDate = n.ProcessDate
JOIN dbo.SAVINGS s
ON f.PARENTACCOUNT = s.PARENTACCOUNT
AND a.ProcessDate = s.ProcessDate
where (a.WARNINGCODE1 = 52
OR a.WARNINGCODE2 = 52
OR a.WARNINGCODE3 = 52
OR a.WARNINGCODE4 = 52
OR a.WARNINGCODE5 = 52
OR a.WARNINGCODE6 = 52
OR a.WARNINGCODE7 = 52
OR a.WARNINGCODE8 = 52
OR a.WARNINGCODE9 = 52
OR a.WARNINGCODE10 = 52)
AND n.TYPE = 0
AND f.PARENTACCOUNT = '0000123456'
GROUP BY f.PARENTACCOUNT, s.type, s.BALANCE, a.ProcessDate, n.FIRST, n.MIDDLE, n.LAST
ORDER BY f.PARENTACCOUNT
Это мой результат:
PARENTACCOUNT Post Date ProcessDate type Member Name BALANCE
0000123456 2020-01-24 00:00:00 20180831 1 Jane Doe 12345.04
0000123456 2020-01-24 00:00:00 20180930 1 Jane Doe 12345.12
0000123456 2020-01-24 00:00:00 20181031 1 Jane Doe 12345.23
0000123456 2020-01-24 00:00:00 20181130 1 Jane Doe 12345.31
Я хочу, чтобы он просто возвращал это:
PARENTACCOUNT Post Date ProcessDate type Member Name BALANCE
0000123456 2020-01-24 00:00:00 20181130 1 Jane Doe 12345.31
Примечание: a.processdate - это INT (я не создавал базу данных таким образом).