我的会计数据库中的 Ledger 表中有以下查询:select lmatter , ltradat , llcode , lamount , lperiodfrom ledgerwhere lmatter = '1234-ABCD' and lzero <> 'R'order by lperiod结果是: 由此,我想知道是否可以创建以下最终结果: 我得到这些#的方式如下:我们的工作假设今天是 2015 年 12 月 1 日,我们正在为 2015 年 11 月的数据计费。这使得我们正在使用的 lperiod 作为“当前”等于“1115” 物质 ID 是一个独特的 物质 上一页Bal 是 SUM(FEES + HCOST) - SUM(PAY) 其中 lperiod '1115' 付款是 SUM(PAY) 其中 lperiod = '1115' 当前费用为 SUM(FEES + HCOST),其中 lperiod = '1115' 应付金额为 Prev.Bal - 付款 + 当前费用 在使用子查询的一个查询下,或者甚至可能使用几个临时表,这是否可能? 最佳答案 用例你可以建立更高级的逻辑对于应付金额,我会嵌套查询select *, prev - pay + current as 'DUE'from(select lmatter , sum(case when lperiod <> '1115' and llcode in ('FEES', 'HCOST') then lamount when lperiod <> '1115' and llcode = 'PAY' then -lamount end) as 'prev' , sum(case when lperiod = '1115' and llcode = 'PAY' then lamount end) as 'payment' , sum(case when lperiod = '1115' and llcode in ('FEES', 'HCOST') then lamount end) as 'current'from ledgerwhere lmatter = '1234-ABCD'and lzero <> 'R'group by by lmatter) as tt关于tsql - 带有 SUM 的 SQL 子查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36085319/ 10-12 16:28