Ich schreibe diese AbfrageSummen- und LEFTJOIN SQL
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
ich diesen Fehler:
Arithmetic overflow error converting expression to data type int.
Warning: Null value is eliminated by an aggregate or other SET operation.
Was kann ich tun?
Wenn Sie alle Min, Max, Avg Zeug auskommentieren, erhalten Sie immer noch den Fehler? – Ultimater
Können Sie bitte die Definitionen der Tabellen posten? – stoneg64
Der Überlauffehler kommt wahrscheinlich vom zweiten JOIN, wo ein SUM durchgeführt wird. Versuchen Sie, diese Abfrage selbst auszuführen, um zu sehen, was passiert. – Jake