下面的查詢是通過約一百萬行枚舉計算MTBUR(標準時間計劃外的維修間隔):轉換失敗
DECLARE @BeginDate date = '01-01-2013',
@EndDate date = '12-31-2013'
BEGIN
SELECT H.AutoType
,COALESCE(SUM(CASE WHEN (R.ReceiveDate BETWEEN @BeginDate AND @EndDate)
THEN H.Hours ELSE 0 END)
/COUNT(CASE WHEN (R.ReceiveDate BETWEEN @BeginDate AND @EndDate)
AND (R.Confirm NOT LIKE 'C%' AND R.Confirm NOT LIKE 'Y%')
THEN R.Confirm ELSE 0 END)
, SUM(H.Hours)) AS 'MTBUR'
FROM [Hours] H
INNER JOIN Repair R ON H.SN = R.SN
GROUP BY H.AutoType
ORDER BY AutoType ASC
END
我得到以下錯誤消息:
Msg 245, Level 16, State 1, Line 4
Conversion failed when converting the nvarchar value 'YES' to data type int.
我推斷出從錯誤信息的YES
是從第一個「CASE」語句布爾評價結果;如我錯了請糾正我。
以下是我的僞代碼:
The numerator is the sum of all hours between @BeginDate and @EndDate
The denominator is the COUNT of all confirmed status NOT LIKE %C and NOT LIKE %Y AND between @BeginDate and @EndDate.
我一直在擺弄這個查詢天;是的,我只是一個新手,只是學習。很想完成這件事,並移動到下一個衝刺
什麼'YES'應該是類似於'INT'你覺得呢? – Rahul
什麼數據類型是R.Confirm? – JodyT
@JodyT R.Confirm is varchar –