Я хочу показать только дату последнего платежа. В настоящее время Запрос просматривает все суммы транзакций, которые меньше нуля (что означает, что они заплатили) и показывает соответствующую дату. Но я просто хочу показать последнюю или максимальную дату.
SELECT DISTINCT RMCUST.CUST_NAME AS 'Customer',
SUM(RMDET.TRAN_AMT - RMDET.TRAN_AMT_APPLIED)
OVER (PARTITION BY RMCUST.CUST_NAME)
AS 'Total Balance',
CASE WHEN RMDET.TRAN_AMT < 0
THEN MAX(RMDET.TRAN_DATE)
ELSE ''
END
AS 'Last Payment'
FROM RMCUST (NOLOCK)
INNER JOIN RMCUSTZ (NOLOCK) ON RMCUSTZ.CUST_CODE = RMCUST.CUST_CODE
INNER JOIN RMDET (NOLOCK) ON RMDET.CUST_CODE = RMCUST.CUST_CODE
WHERE RMCUSTZ.AR_BALANCE !=0
GROUP BY RMCUST.CUST_NAME,
RMDET.TRAN_AMT,
RMDET.TRAN_AMT_APPLIED,
RMDET.TRAN_DATE
ORDER BY 'Customer'
Вывод:
Customer Total Balance Last Payment
-----------------------------------------------------------------------
135 PRIME 462.66 1900-01-01 00:00:00.000
71 ABOVE 3617.60 1900-01-01 00:00:00.000
71 ABOVE 3617.60 2020-01-20 00:00:00.000
71 ABOVE 3617.60 2020-02-14 00:00:00.000
71 ABOVE 3617.60 2020-02-20 00:00:00.000
71 ABOVE 3617.60 2020-02-28 00:00:00.000
ABERNETHYS MUSIC CENTER 1014.60 1900-01-01 00:00:00.000
AC HOTEL 158.50 1900-01-01 00:00:00.000
AC HOTEL 158.50 2020-01-03 00:00:00.000
AC HOTEL 158.50 2020-01-10 00:00:00.000
AC HOTEL 158.50 2020-01-29 00:00:00.000
AC HOTEL 158.50 2020-02-04 00:00:00.000