我具有以下信息的数据:
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
但是我需要结果如下,在这里您可以看到所有列都是相同的,除了以下结果中的费用总计,我希望对于相同的VisitID
或{{1},这些费用仅填充一次},然后填充为Zero,让我知道如何通过查询解决此问题。
AccountNumber
答案 0 :(得分:1)
在内部查询中,我在AcctNumber列上添加了Row_Number函数。 此函数将按AcctNumber返回行号组。因此,您将从每个AcctNumber的1开始。在外部查询中,我添加了一个案例时间以基于行号获取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