У меня есть этот код, и мне сложно понять, почему он не работает. Я искал решение, которое на самом деле является тем, как мой код оказался таким, каким он есть, но он просто не работает правильно ... Любая помощь будет оценена.SQL Server: определение максимального значения в наборе результатов
Что я пытаюсь сделать, это выбрать одну запись для каждого клиента. Выбранная запись должна быть той, которая имеет самый высокий баланс должника. Вместо этого я получаю все должники со своими остатками. Почти как это не группируя их обратно клиенту ...
SELECT
Debtorness.ClientName,
Debtorness.DebtorName,
MAX(Debtorness.DFB)
FROM
(SELECT
Clients.Name AS ClientName,
Debtors.Name AS DebtorName,
(CalcAging.FundedBalance) AS DFB
FROM
Clients
INNER JOIN
CalcAging ON Clients.ClientKey = CalcAging.ClientKey
INNER JOIN
Debtors ON CalcAging.DebtorKey = Debtors.DebtorKey
INNER JOIN
CalcClient ON Clients.ClientKey = CalcClient.ClientKey
WHERE
Clients.Inactive='0'
GROUP BY
Clients.Name, Debtors.Name, CalcAging.FundedBalance,
CalcAging.MasterDebtorKey) AS Debtorness
GROUP BY
Debtorness.ClientName, Debtorness.DebtorName, Debtorness.DFB
ORDER BY
Debtorness.ClientName ASC
Пример вывода о том, что я получаю:
Client1 | Debtor23 | Balance
Client1 | Debtor47 | Balance
Client1 | Debtor14 | Balance
Client2 | Debtor72 | Balance
Client2 | Debtor30 | Balance
Etc ... Для всех клиентов. Опять же, я хочу видеть всех клиентов, но я просто хочу, чтобы должник с самым высоким балансом для этого клиента ... Спасибо!
Спасибо так много! Теперь я должен посмотреть, что делает раздел, и перечеркнуть означает ... Ха-ха. Тем не менее, это работает как чемпион! Ура! –
Примите этот ответ как правильный, если вы поможете вам с вашим вопросом. –