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

标签 c# sql-server sql-server-2008

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

---------------------------------------------------------------
Month    Total Fee        Fee Deposit        Fee Due    Fine
---------------------------------------------------------------
October   200,000           100,000          100,000    5,00

我的查询是:
1

SELECT Sum(Fee)AS'TotalFee', DueDate AS'Date' 
FROM VoucherTB 
GROUP BY DueDate

2

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

3

SELECT Sum(Fee)AS'FeeDue', DueDate AS'Date' 
FROM VoucherTB 
WHERE FeeSubmission='UnPaid' 
GROUP BY DueDate

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

最佳答案

你可以这样做:

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

关于c# - 如何在一个查询中合并多个选择查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46378884/

相关文章:

sql - 如何通过脚本自动生成临时表列和数据类型

c# - 查看文件是否包含特定字符串,然后读取该行

c# - 在 Visual Studio 中使用命令窗口

sql-server - 从命令行或存储过程启动复制订阅者的同步

sql - 如何使用列中的不同值作为新表的列名创建表?

sql - 使用 IF/ELSE 确定 SELECT INTO 语句

sql - 根据SQL SERVER中的事务数量追加字母

sql - 递归 CTE 查询生成产品或页面层次结构

c# - MQTT 与 XMPP 我应该选择哪个?

c# - 关闭使用 WCF 的线程时的额外步骤?