SELECT clientid,
CASE WHEN D.ccode = '-1' Then 'Did Not Show' ELSE D.ccode End ccode,
ca,
ot,
bw,
cshT,
dc,
dte,
approv
FROM dbo.emC D
WHERE year(dte) = year(getdate())
我得到正確的結果。
這是正確的結果,因爲CCODE顯示「沒有顯示」時的分貝值是「-1」
然而,當我做了UNION ALL這樣我就可以得到總爲每列,我得到當valcode for ccode爲'-1'時,結果但'Did Not Show'不再顯示。
有超過1000條值爲'-1'的記錄。
有人可以幫忙嗎?
以下是帶UNION的完整代碼。
SELECT clientid,
CASE WHEN D.ccode = '-1' Then 'Did Not Show' ELSE D.ccode End ccode,
ca,
ot,
bw,
cshT,
dc,
dte,
approv
FROM dbo.emC D WhERE year(dte) = year(getdate())
UNION ALL
SELECT 'Total',
'',
SUM(D.ca),
SUM(D.ot),
SUM(D.bw),
SUM(D.cshT),
'',
'',
''
FROM emC D
WHERE YEAR(dte)='2011'
我也使用ROLLUP嘗試,但這裏真正的問題是,我不能讓「沒有表現出」要顯示的文字時CCODE值爲-1
ClientID CCODE ot ca bw cshT
019692 CF001 0.00 0.00 1.00 0.00 0.00
019692 CH503 0.00 0.00 1.00 0.00 0.00
010487 AC407 0.00 0.00 1.00 0.00 0.00
028108 CH540 0.00 0.00 1.00 0.00 0.00
028108 GS925 0.00 0.00 1.00 0.00 0.00
001038 AC428 0.00 0.00 3.00 0.00 0.00
028561 Did Not Show 0.00 0.00 0.00 0.00 0.00
016884 Did Not Show 0.00 0.00 0.00 0.00 0.00
05184 CF001 0.00 0.00 4.50 0.00 0.00
儘管數據類型沒有改變。 ccode是nvarchar(50)。也許,我誤解了你的觀點。一個例子會很棒。感謝您的時間和幫助。 – Kenny
請註明兩個查詢將輸出的列的確切列列結構。 – darnir
我已經用樣本佈局更新了上面的帖子。對不起,他們向左轉。非常感謝你。我真的很感謝你的幫助。 – Kenny