Как использовать регистр для запроса ниже - PullRequest
0 голосов
/ 27 марта 2019

У меня есть эти данные со следующей информацией:

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 ИЛИ AccountNumber и оставались до заполнить как ноль, дайте мне знать, как мы можем решить эту проблему с помощью запроса.

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

tiny image

крошечное изображение

1 Ответ

1 голос
/ 27 марта 2019

Во внутренний запрос я добавил функцию Row_Number для столбца AcctNumber. Эта функция вернет группу номеров строк по AcctNumber. Таким образом, вы будете начинать с 1 для каждого AcctNumber. Во внешний запрос я добавил Случай, когда получить ChgTotal на основе номера ROw.

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
...