使用SQL语句包含两个附加列的查询



我需要从以下三个条件中创建两个额外的列

有三种类型的事务

支付
  • <
  • 退款/gh>

说明:- Payment

  1. 如果Description类型为Payment它们张贴在信用栏中,该付款的细目如下所示,需要将这两行转换为付款行下的两列。
  • 资金信贷备忘-资金栏
  • 利息信贷备忘录-利息栏

例如:

描述tbody><

在付款行下将此两行转换为两列

要减少行数,增加列数,新列基于另一列的值,您需要"条件聚合"。

本质上,这仅仅意味着将case expression放在聚合函数(如SUM(),例如SUM(case when name='Fred' then col_value end) as sum_value)中。所以我想它看起来应该像这样:

SELECT
ft.ApplicationId
, min(ft.PostingDate) AS min_postingDate
, min(ft.ValueDate) AS min_valueDate
, sum(CASE WHEN description = 'Payment ' THEN ft.CreditAmount END) AS CreditAmount
, sum(CASE WHEN description = 'Capital Credit Memo' THEN ft.CreditAmount END) AS CapitalAmount
, sum(CASE WHEN description = 'Interest Credit Memo' THEN ft.CreditAmount END) AS InterestAmount
FROM [dbo].[FinancialTransaction] AS ft
LEFT JOIN TransactionType AS TT ON tt.TransactionTypeId = ft.TransactionTypeId
LEFT JOIN [application] AS a ON a.ApplicationId = ft.ApplicationId
LEFT JOIN [entity] AS c ON c.Entityid = a.CustomerEntityId
GROUP BY
ft.ApplicationId

我很可能没有得到正确的大小写表达式,因为一个或多个可能需要使用DebitAmount,并且可能包含多个描述值,例如

, sum(CASE WHEN description IN ('Payment','Return') THEN ft.CreditAmount END) AS CreditAmount

希望这足以让您实现所需的逻辑。

最新更新



  • All rights reserved © 2023 www.xiaobeizi.cn

  • 首页
IdPostingdateValuedateDebitAmountCreditAmount预期列数大写期望列兴趣
6552付款01/03/202226/02/2022043.8234.59.32
6552兴趣信贷备忘录01/03/202226/02/202209.32
6552资本信用备忘录01/03/202226/02/2022034.5