SQL存储过程 - 使用where子句进行分组设置?

时间:2016-02-04 09:03:39

标签: sql stored-procedures grouping-sets

我之前使用Grouping Sets来总结列中的所有内容以获得总计

但是,我还没有找到一种方法来总结包含WHERE CLAUSE的列,我想知道是否真的有办法使用Grouping Sets执行此操作?

更新

以下是基本查询的示例: 我希望能够总结Deleted = 0的所有内容。因为我不希望已删除的交易包含在总计中。但我仍然希望删除的交易显示在结果中。

SELECT 
  TP.CompanyID, 
  TP.CompanyName, 
  TP.PaidStatus,'
  TP.Credit,
  TP.Debit,
  TP.Outstanding,
  TP.Deleted                           

FROM    
  dbo.Posting TP

GROUP BY
GROUPING SETS(( 
   CompanyID,
   CompanyName,
   PaidStatus,
   Credit,
   Debit,
   OutStanding,
   Deleted),())

1 个答案:

答案 0 :(得分:2)

您可以将Where子句与GROUPING SETS一起使用,如下所示:

它应该有用。

SELECT 
  TP.CompanyID, 
  TP.CompanyName, 
  TP.PaidStatus,'
  TP.Credit,
  TP.Debit,
  TP.Outstanding,
  TP.Deleted                           

FROM    
  dbo.Posting TP
WHERE TP.Deleted = 0
GROUP BY
GROUPING SETS(( 
   CompanyID,
   CompanyName,
   PaidStatus,
   Credit,
   Debit,
   OutStanding,
   Deleted),())