0

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

1 回答 1

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),()) 
于 2016-02-04T09:31:36.257 回答