對於每個客戶我們在clients
表,顯示client id
和last name
。如果客戶的動物去年有任何考試,則顯示考試的平均費用和考試的最高費用。平均費用和最高費用在小數點後用兩位數字格式化(使用str函數)。如果沒有檢查,顯示字符串'不檢查'。這可能是因爲客戶沒有動物,或者因爲動物沒有考試。按客戶ID排序。無法轉換的char值SMALLMONEY
SELECT CL.cl_id AS CL_ID, CL.cl_name_last AS LastName
,STR(AVG(CASE WHEN YEAR(EH.ex_date) = YEAR(GETDATE())-1 THEN ED.ex_fee ELSE 'no exams' END),12,2) AS 'AverageFee'
,STR(MAX(CASE WHEN YEAR(EH.ex_date) = YEAR(GETDATE())-1 THEN ED.ex_fee ELSE 'no exams' END),12,2) AS 'HighestFee'
FROM vt_clients AS CL
INNER JOIN vt_animals AS AN ON CL.cl_id = AN.cl_id
LEFT JOIN vt_exam_headers AS EH ON AN.an_id = EH.an_id
LEFT JOIN vt_exam_details AS ED ON EH.ex_id = ED.ex_id
GROUP BY cl.cl_id, CL.cl_name_last
我得到這個錯誤。
Msg 293, Level 16, State 0, Line 1
Cannot convert char value to smallmoney. The char value has incorrect syntax.
這是爲什麼?
你可能在你的字符串非數值。 – Mihai
謝謝!我刪除了Else的「沒有考試」,瞧!但它不符合作業的標準,即顯示「沒有考試」,而不是現在顯示的是「0.00」。你知道我能做到嗎? 編輯:語法 –