我有一份報告,我正在處理該報告中有幾個參數傳遞給它。其中之一是由逗號操作的一串UserIds。這些被拆分併發送到表變量。在我的查詢方面,我需要能夠總結值。在這些總和中,我需要將這個值加到總和中,並且在另一種情況下不加入它。該代碼看起來是這樣的......總結一個病例陳述並檢查表中的值變量
SELECT
TrnId,
TrnCode,
(SUM(CASE WHEN PolicyUseId in (select UseId From @Table) then TotalPremium else 0 end)) as Value
AnotherColumn
FROM SomeTableJoinedOnOtherThings
,我遇到的問題是這樣的......「不能對包含聚合或子查詢的表達式執行聚合的功能。」我假設,這是IN表的檢查。
我有另一個報告就像這樣,除了我只對我通過查詢的參數進行檢查。
(CASE PolicyUseId when @UseId then PriceColumn else 0 end)
此查詢可以正常工作並執行所有計算。我不確定如何在沒有這個case語句的情況下在select行中得到總數,因爲我需要拉2組數據,決定如何在選擇中不幸地添加它們。任何建議都會很棒。
如果你刪除了SUM,它是否有效?......如何做一個CTE? – Hackerman