用于获取每行总金额的SQL查询
问题描述:
我有两个表,一个是分类帐中的分类帐,其中有字段Name和LedgerId。 并且还有另外一个表中有交易的字段,它们是transId,Date,ledgerId,Amount。用于获取每行总金额的SQL查询
tables :- Ledgers transactions -------- ------------ LedgerId transId Name Date ledgerId Amount
从每个台账它将存储到交易表,分类帐识别收集量的时候,我需要的报告是获得两个日期之间的交易清单。报告将会。
Date, Name, Amount, Total Amount so far
如何使用查询获取总金额,总金额是指在总账多少金额时,他/她存入那个时候。例如。
Date Name Amount in Date Total Amount so far 21/08/2017 Jon 100 100 (this is total of Jon's transaction) 22/08/2017 Danny 20 20 (this is total of Danny's transaction) 23/08/2017 Jon 50 150 (this is total of Jon's transaction) 24/08/2017 Danny 10 30 (this is total of Danny's transaction)
所以我想总金额到目前为止列将直到该日期的总分类账。我可以通过查询做到这一点吗?
答
一种方法是使用相关子查询:
SELECT t.Date, l.Name, t.Amount,
(SELECT SUM(Amount)
FROM transactions t2
WHERE t2.ledgerID = t.ledgerID
AND t2.date <= t.date) as TotalAmountToDate
FROM ledger l
JOIN transactions t on l.ledgerID = t.ledgerID
这将在SQL Server的工作,不能完全确定有关访问。
sql-server或ms-access? – SqlZim
这是MS Access还是SQL Server?或两者? – Shawn
你只想总结指定日期之间的交易吗?或者你想总结所有记录到结束日期?考虑构建报告并将其排序和分组与聚合计算功能一起使用。报告上的文本框具有RunningSum属性。否则,查看http://allenbrowne.com/subquery-01.html#YTD – June7