Я хочу получить сумму (или число) для каждой строки в таблице на основе нескольких критериев из конкретной строки.
Я могу заставить это работать, используя подзапрос, но только с одним критерием.Если я добавлю 2-е, тогда мне потребуется использовать группировку, которая затем возвращает несколько строк и разбивает запрос.
SELECT top (10)
[DateTime]
,[CustNo]
,[AccountId2]
,[amount]
into ##allMM
FROM [OLBRET_COPY].[dbo].[ActivityLogs]
where CustNo in ('123456')
select
[DateTime]
,[CustNo]
,[AccountId2]
,[ClientIp]
,[ReferenceNo]
,[ErrorCode]
,[ErrorMessage]
(select
sum(amount)
from ##allMM
group by ##allMM.CustNo
having ##allMM.CustNo = a.CustNo and ##allMM.DateTime < a.DateTime
) as sumCustno
into ##finalSel
FROM [OLBRET_COPY].[dbo].[ActivityLogs] a
where CustNo in ('123456')
select * from finalSel
drop table ##allMM, ##finalSel
В приведенном выше примере используются два критерия (custno и DateTime), но мне, вероятно, потребуется добавитьдополнительные критерии позже.Я ожидаю, что вывод будет единственной суммой всех сумм в первой таблице, которые удовлетворяют всем условиям подзапроса.В настоящее время я ограничен одной учетной записью, поскольку база данных огромна.
Конечный результат должен выглядеть примерно так:
datetime | custno | .... | sumCustNo
3Jul2019 | 123456 | .....| 681.25
2Jul2019 | 123456 | .... | 251.76
30Jun2019 | 345678 | .... | 1237.93