Transact-SQL-具有需要计算的不同记录类型的表

Transact-SQL-具有需要计算的不同记录类型的表,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有一个发票和记录类型表,我需要与未结发票报告进行对账。我已经完成了流程,知道我需要做什么。只是不知道如何正确构造查询,更不希望创建3个表。 记录类型 发票=1信用=5付款=7 发票号、记录类型、美元数字 未付余额=发票1-付款7贷方 发票编号记录类型Gen数字3 基本上我需要取记录类型1,然后从下面减去记录类型7的总数 Invoice_Num Rec_Type Dollar_Amt 00820437 1 536.7700000000 00820437 7

我有一个发票和记录类型表,我需要与未结发票报告进行对账。我已经完成了流程,知道我需要做什么。只是不知道如何正确构造查询,更不希望创建3个表。 记录类型

发票=1信用=5付款=7 发票号、记录类型、美元数字

未付余额=发票1-付款7贷方

发票编号记录类型Gen数字3

基本上我需要取记录类型1,然后从下面减去记录类型7的总数

Invoice_Num Rec_Type Dollar_Amt    
00820437      1     536.7700000000  
00820437      7     469.6200000000  
00820437      7      67.1500000000  

任何建议都很好。messer

您可以通过聚合和案例语句来实现这一点:

SELECT invoice_num, 
   SUM(CASE WHEN rec_type = 1 THEN dollar_amt ELSE 0 END) - (SUM(CASE WHEN rec_type=7 THEN dollar_amt ELSE 0 END) - SUM(CASE WHEN rec_type=5 THEN dollar_amt ELSE 0 END)) as outstanding_balance
FROM yourtable
GROUP BY invoice_num

请阅读你所写的,不要假设你知道你想做什么。关于发票编号记录类型Gen Numeric 3的行对其他任何人都没有意义。这有关系吗?根据您的公式,您实际上想要*添加给定的学分--5>,这与-+。对的提供一组更全面的样本数据和您期望的结果如何?通过几处调整,我就得到了结果。不能告诉你我有多感激你的时间。非常感谢你。真诚地Esser@messer-那么请把它标记为答案。如果添加了调整,您可以添加到注释中