SQL Union未显示所有结果
我试图同时显示贷方列和借方列,但它将两个金额放在一列中,并且只显示贷方标题 对于每个报表描述,都有一个贷方和一个借方金额。 我需要它来填充,以便我可以看到对账单_description=credit 及以下对账单(说明)借方SQL Union未显示所有结果,sql,sql-server,tsql,union,Sql,Sql Server,Tsql,Union,我试图同时显示贷方列和借方列,但它将两个金额放在一列中,并且只显示贷方标题 对于每个报表描述,都有一个贷方和一个借方金额。 我需要它来填充,以便我可以看到对账单_description=credit 及以下对账单(说明)借方 `SELECT PR.[Statement_Description] --,PR.[Debit_Acc_Num] ,PR.[Credit_Acc_Num] ,PR.Actual_Txn_Amount as Credit_Amount
`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”作为第一个联合体中的DebitAmount,将Credit作为您的原始计数,然后在下一个联合体中对Credit执行相同的操作
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
Microsoft SQL Server Management努力使用UNION ALL而不是UNION。UNION ALL仍然只为我提供贷方栏而不是借方栏感谢这项工作非常完美,但我如何在最后进行平衡以显示贷方与借方相等,因为我需要将其导出到excel文档中,因为这样做将是一件自动化的事情。要显示余额等于零,您可以将整个查询包装在一个选项卡中,然后计算贷方和借方的总和,因为您现在有两个单独的列。然后根据需要计算差额。