У меня в настоящее время есть большой SQL-оператор, который я добавляю следующую строку к тому, для получения общих наличных денег для каждого идентификатора транзакции (которые уникальны):
select sum(cash) from Table a where a.branch = p.branch
and a.transID = p.transID) TotalCash
и я теперь должен сделать тот же, но только составить денежную стоимость, которая имеет valuedate в течение прошлого месяца, таким образом, у меня есть что-то вроде этого:
select sum(CASE ValueDate WHEN > @startMonthDate THEN cash ELSE NULL END)
from Table a where a.branch = p.branch and a.transID = p.transID) TotalMonthCash
Извините, что у меня нет целого оператора, но это действительно длинно и характерно для контекста хранимой процедуры, но надеялось, что кто-то будет знать то, что я имею в виду?
С условием, ИМЕЮЩИМ Вас, устранит данные с наличными деньгами не, ультрапередают 0, если Вы хотите, генерируя больше эффективности в Вашем запросе.
SELECT SUM(cash) AS money FROM Table t1, Table2 t2 WHERE t1.branch = t2.branch
AND t1.transID = t2.transID
AND ValueDate > @startMonthDate HAVING money > 0;