Хранимая процедура SQL - Группировка множеств с предложением где возможно?

Я использовал 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 ответ

Решение

Вы можете использовать предложение 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),()) 
Другие вопросы по тегам