Хранимая процедура 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),())