SQL 存储过程 - 可能使用 where 子句对集进行分组



我以前用过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),())

您可以将 Where 子句与分组集一起使用,如下所示:

它应该有效。

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),()) 

相关内容

  • 没有找到相关文章

最新更新