如何在一个查询中合并多个选择查询

Lio*_*art 1 c# sql-server sql-server-2008

我有这4个查询我想从这样的表中选择数据

---------------------------------------------------------------
Month    Total Fee        Fee Deposit        Fee Due    Fine
---------------------------------------------------------------
October   200,000           100,000          100,000    5,00
Run Code Online (Sandbox Code Playgroud)

我的查询是:
1

SELECT Sum(Fee)AS'TotalFee', DueDate AS'Date' 
FROM VoucherTB 
GROUP BY DueDate
Run Code Online (Sandbox Code Playgroud)

2

SELECT Sum(VoucherTB.Fee)AS'FeeDeposit', DueDate AS'Date' 
FROM  VoucherTB 
WHERE FeeSubmission='Paid' 
GROUP BY VoucherTB.DueDate
Run Code Online (Sandbox Code Playgroud)

3

SELECT Sum(Fee)AS'FeeDue', DueDate AS'Date' 
FROM VoucherTB 
WHERE FeeSubmission='UnPaid' 
GROUP BY DueDate
Run Code Online (Sandbox Code Playgroud)

4

SELECT Sum(RevenueTB.Fine)AS'Fine', VoucherTB.DueDate AS'Date' 
FROM RevenueTB 
INNER JOIN VoucherTB 
ON venueTB.VoucherNo=VoucherTB.VoucherNo 
GROUP BY VoucherTB.DueDate
Run Code Online (Sandbox Code Playgroud)

小智 5

你可以这样做:

SELECT  
  v.DueDate AS'Date',
  Sum(CASE WHEN v.FeeSubmission = 'Paid'   THEN v.Fee ELSE 0 END) AS 'FeeDeposit', 
  Sum(CASE WHEN v.FeeSubmission = 'UnPaid' THEN v.Fee ELSE 0 END) AS 'FeeDue',
  Sum(r.Fine)AS'Fine',
  Sum(r.Fee) AS 'TotalFee'
FROM  RevenueTB AS r
INNER JOIN VoucherTB AS v ON v.VoucherNo = r.VoucherNo
GROUP BY v.DueDate
Run Code Online (Sandbox Code Playgroud)