2017-10-24 22 views
0

クレジット列とデビット列の両方を表示しようとしていますが、両方の金額を1つの列に入れ、クレジット見出しのみを表示しています。SQL Unionですべての結果が表示されない

各明細書の説明には、クレジットとデビット額があります。私はあなたが、このようにそれを行う取ることができますので、私はStatement_descriptionを見ることができる=信用 とstatement_descriptionデビット以下

`SELECT PR.[Statement_Description] 
     --,PR.[Debit_Acc_Num] 
     ,PR.[Credit_Acc_Num] 
     ,PR.Actual_Txn_Amount as Credit_Amount 
     ,Actual_Txn_Date 
     ,PBY = '949' 
     ,VatCode = 'E' 

     FROM [Financial].[dbo].[Payment_Request] PR 
      inner join SharedData.dbo.StaffData SD 
       on PR.Prepared_By = SD.StaffNo 
    where 
    ID_Payment_Status = '1' 
    --and Prepared_By_Date = (SELECT CONVERT(DATETIME, CONVERT(DATE, CURRENT_TIMESTAMP)) + '14:00' as date) 
    and (Debit_Acc_Num like '1%' or Debit_Acc_Num like'2%') 
    and (Credit_Acc_Num like '1%' or Credit_Acc_Num like'2%') 
    and Debit_Acc_Num <> 0 
    --and Credit_Acc_Num <> 0 

union 

    SELECT PR.[Statement_Description] 
     ,PR.[Debit_Acc_Num] 
     --,PR.[Credit_Acc_Num] 
     ,PR.Actual_Txn_Amount as Debit_Amount 
     ,Actual_Txn_Date 
     ,PBY = '949' 
     ,VatCode = 'E' 

    FROM [Financial].[dbo].[Payment_Request] PR 
      inner join SharedData.dbo.StaffData SD 
       on PR.Prepared_By = SD.StaffNo 
    where 
    ID_Payment_Status = '1' 
    and (Debit_Acc_Num like '1%' or Debit_Acc_Num like'2%') 
    and (Credit_Acc_Num like '1%' or Credit_Acc_Num like'2%') 
    --and Debit_Acc_Num <> 0 
    and Credit_Acc_Num <> 0 
    order by Statement_Description 
` 
+0

Microsoft SQL Server管理スタジオ – johnny

+0

「UNION」ではなく「UNION ALL」を使用してください。 –

+0

連合はすべて、依然として私に借方列ではなく、借方列ではありません – johnny

答えて

1

それが移入する必要が「0」DebitAmountとしてあなたoriginalAmountとして最初の労働組合や信用にし、次に 組合はクレジットのために同じことをする。

SELECT PR.[Statement_Description] 
    --,PR.[Debit_Acc_Num] 
    ,PR.[Credit_Acc_Num] 
    ,0 as DebitAmount 
    ,PR.Actual_Txn_Amount as Credit_Amount 
    ,Actual_Txn_Date 
    ,PBY = '949' 
    ,VatCode = 'E' 

    FROM [Financial].[dbo].[Payment_Request] PR 
     inner join SharedData.dbo.StaffData SD 
      on PR.Prepared_By = SD.StaffNo 
where 
ID_Payment_Status = '1' 
--and Prepared_By_Date = (SELECT CONVERT(DATETIME, CONVERT(DATE, 
CURRENT_TIMESTAMP)) + '14:00' as date) 
and (Debit_Acc_Num like '1%' or Debit_Acc_Num like'2%') 
and (Credit_Acc_Num like '1%' or Credit_Acc_Num like'2%') 
and Debit_Acc_Num <> 0 
--and Credit_Acc_Num <> 0 

union 

SELECT PR.[Statement_Description] 
    ,PR.[Debit_Acc_Num] 
    --,PR.[Credit_Acc_Num] 
    ,PR.Actual_Txn_Amount as Debit_Amount 
    ,0 as CreditAmount 
    ,Actual_Txn_Date 
    ,PBY = '949' 
    ,VatCode = 'E' 

FROM [Financial].[dbo].[Payment_Request] PR 
     inner join SharedData.dbo.StaffData SD 
      on PR.Prepared_By = SD.StaffNo 
where 
ID_Payment_Status = '1' 
and (Debit_Acc_Num like '1%' or Debit_Acc_Num like'2%') 
    and (Credit_Acc_Num like '1%' or Credit_Acc_Num like'2%') 
--and Debit_Acc_Num <> 0 
and Credit_Acc_Num <> 0 
order by Statement_Description 
+0

これは完璧に機能してくれてありがとうございますが、最後にバランスを取って、エクセルの文書にエクスポートする必要があるので、これは自動化されたものになるでしょう。残高がゼロであることを示すために、 – johnny

+0

を使用して、1つのタブにクエリ全体をラップし、次に2つの別々の列を持つようにSUMを計算することができます。 – Mohammad

関連する問題