0
SELECT
c.BID AS BID,
c.BName AS BName,
c.SName AS SName,
CASE
WHEN T.tHistoryValue1 = 1 THEN 'A'
WHEN T.tHistoryValue1 = 2 THEN 'B'
END AS TType,
COUNT(c.TID) AS TCount,
MIN(c.TVaitTime) AS MinVTime,
MAX(c.TVaitTime) AS MaxVTime,
AVG(c.TVaitTime) AS AvVTime,
MIN(c.TPTime) AS MinPTime,
MAX(c.TPTime) AS MaxPTime,
AVG(c.TPTime) AS AvPTime,
AVG(CASE WHEN c.TPTime > 0 THEN c.TPTime ELSE 0 END) AS AvPTime,
result.ShowCount
FROM
c
LEFT JOIN
(SELECT *
FROM cHistory
WHERE cHistoryTypeID = 4) AS T ON (T.TID = c.TID)
LEFT JOIN
(SELECT SUM(CASE WHEN THistoryTypeId = 4 THEN 1 END) -
COUNT(CASE WHEN THistoryValue1 = 1 THEN 1 END) AS ShowCount
FROM tbl_THistory) AS result ON T.BID = c.BID
WHERE
c.TD = 0
GROUP BY
c.BName c.BID, c.SName, T.THistoryValue1, result.ShowCount
ORDER BY
c.BID, c.BName ASC
このクエリを書く私はこのエラーを取得する:
Arithmetic overflow error converting expression to data type int.
Warning: Null value is eliminated by an aggregate or other SET operation.
私は何ができますか?
最小、最大、すべてのものをコメントアウトすると、エラーが表示されますか? – Ultimater
テーブルの定義を投稿してください。 – stoneg64
オーバーフローエラーは、SUMが実行されている2番目のJOINから発生している可能性があります。何が起こるかを見るために、そのクエリを単独で実行してみてください。 – Jake