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

时间:2018-05-14 18:41:07

标签: sql sql-server tsql

我有一张发票和Record_Types表,我需要协调以打开发票报告。我把这个过程放下来,知道我需要做什么。只是不知道如何正确构建查询,并希望不创建3个表。 记录类型。

  • Invoice = 1 Credit = 5 Payment = 7

Invoice_Number,Record_Type,Dollar figure

Outstanding_Balance = Invoice(1) - (Payment(7) - (Credit))

Invoice_number Record_type Gen_Numeric_3

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

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

任何建议都会很棒。梅塞尔

1 个答案:

答案 0 :(得分:1)

您可以使用聚合和案例陈述来执行此操作:

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