繁体   English   中英

如何对以下查询使用 case 表达式

[英]How to use case expression for the below query

我有这些数据和以下信息:

AcctNumber  VisitID   TxnType   TxnJournal  TxnSvcDate  TxnBchDate  TxnNonChgCode  TxnAmount  TxnCount  TxnInsurance  ChgTotal
-------------------------------------------------------------------------------------------------------------------------------
 csc       V123456789  PAY       CASUCL     2/8/2019    2/8/2019    CHECK         -181.22          1            SP     3386.6
 csc       V123456789  PAY       CASUCL     2/9/2019    2/9/2019    CHECK         -175.48          1            SP     3386.6
 csc       V123456789  PAY       CASUCL     2/8/2019    2/8/2019    CHECK         -68.06           1            SP     3386.6

但我需要结果如下,在下面的结果中,除了总费用外,您可以看到所有列都相同,我希望这些费用仅为相同的VisitIDAccountNumber填充一次,并保持填充为零,让我知道我们如何通过查询解决这个问题。

AcctNumber  VisitID   TxnType   TxnJournal  TxnSvcDate  TxnBchDate  TxnNonChgCode  TxnAmount  TxnCount  TxnInsurance  ChgTotal
-------------------------------------------------------------------------------------------------------------------------------
 csc       V123456789  PAY       CASUCL     2/8/2019    2/8/2019    CHECK         -181.22          1            SP    3386.6
 csc       V123456789  PAY       CASUCL     2/9/2019    2/9/2019    CHECK         -175.48          1            SP     0
 csc       V123456789  PAY       CASUCL     2/8/2019    2/8/2019    CHECK         -68.06           1            SP     0

微小的图像

微小的图像

在内部查询中,我在 AcctNumber 列上添加了一个 Row_Number 函数。 此函数将返回按 AcctNumber 分组的行号。 因此,对于每个 AcctNumber,您将从 1 开始。 在外部查询中,我添加了一个 Case When 来获取基于 ROw Number 的 ChgTotal。

SELECT 
    AcctNumber, VisitID, TxnType, TxnJournal, TxnSvcDate, TxnBchDate,  
    TxnNonChgCode, TxnAmount, TxnCount, TxnInsurance,  ChgTotal, 
    CASE 
       WHEN RowNumber = 1 THEN ChgTotal ELSE 0 
    END 
FROM
    (SELECT 
         ROW_NUMBER() OVER (PARTITION BY AcctNumber ORDER BY AcctNumber) RowNumber,
         AcctNumber, VisitID, TxnType, TxnJournal, TxnSvcDate, TxnBchDate,  
         TxnNonChgCode, TxnAmount, TxnCount, TxnInsurance, ChgTotal
     FROM 
         YOUR_TABLE_NAME) AS A

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM