我正在使用SQL Server,我遇到了以下问题,我正在跳跃,有人可以帮助我。
我收到此错误
optional_auth_token
我不想在GROUP BY子句中包含Text,这使得查询运行但问题是该字段中还有其他文本我不希望它分组我只想用文本替换名称对于与CASE匹配的项目
当我将文本添加到组中时,我得到此结果。
Column 'TransactionsLine.Text' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
答案 0 :(得分:2)
问题正是错误所说的。您正在选择不在group by子句中的TransactionsLine.text
。
您可能希望将案例放在group by
子句中:
select StockItemCode as CODE,
(
case
when StockItems.Description like 'item%'
then TransactionsLine.text
else StockItems.Description
end
) as name,
SUM(ItemQuantity) as Sales
from Transactions
inner join TransactionsLine on Transactions.id = TransactionsLine.TransactionID
inner join StockItems on TransactionsLine.StockItemID = StockItems.id
where location = @location
and Department = 43
and Transactions.date between @FROM
and @TO
and TransactionTypeID in (3, 32)
group by StockItemCode,
case
when StockItems.Description like 'item%'
then TransactionsLine.text
else StockItems.Description
end