Je rencontre un problème dans la requête ci-dessous. La question est:Erreur de dépassement arithmétique lors de la conversion de l'expression en type de données int
Msg 8115, niveau 16, état 2, ligne 1 erreur de dépassement arithmétique conversion expression en type de données int
La question se trouve dans cette ligne du code ci-dessous.
INNER JOIN Test t ON a.AccountNO <> t.AccountNo
Des idées?
WITH TEST AS
(
SELECT DISTINCT AccountNo, SUBSTRING(APartyNO, 3, LEN(APartyNo)) AS APartyNoCut
FROM (SELECT DISTINCT AccountNo, APartyNo
FROM prf_BatchItems
WHERE BatchID = 127
AND Code1 = 'DEDF'
AND APartyNo NOT LIKE '04%'
AND ( Left(APartyNo,2) = '02'
OR Left(APartyNo,2) = '03'
OR Left(APartyNo,2) = '07'
OR Left(APartyNo,2) = '08')
GROUP BY AccountNo, APartyNo
UNION
SELECT DISTINCT AccountNo, APartyNo
FROM prf_BatchItemAdditionalAPartyNos
WHERE BatchID = 127
GROUP BY AccountNo, APartyNo) a
)
SELECT Code2, TypeName, CallTypeName, --SUM([Count]),
SUM(Duration), SUM(CostGrossExGST)
FROM
(
SELECT 'WITHOUT STD' AS Type,
Code2, b.TypeName, CallTypeName,
--SUM([COunt]) AS Count,
SUM(DurationSecond) AS Duration,
SUM(a.CostGrossExGSt) AS CostGrossExGST
FROM prf_BatchItems a
INNER JOIN (SELECT * FROM dbo.prf_BillTypeCodes WHERE BillTypeID = 2) b ON a.Code2 = b.BillCodeName
INNER JOIN Test t ON a.AccountNO <> t.AccountNo
where BatchID = 127
AND Code1 = 'DC'
AND ServiceTypeName = 'MobileNet'
AND CallTypeName = 'National Direct Dialled calls'
AND (LEFT(BPartyNo,2) <> '02' AND LEFT(BPartyNo,2) <> '03' OR LEFT(BPartyNo,2) <> '07' OR LEFT(BPartyNo,2) <> '08')
AND BPartyNo NOT LIKE '04%'
AND BPartyNo NOT LIKE '1%'
GROUP BY --a.AccountNo,
Code2, b.TypeName, CallTypeName) zz
GROUP BY Code2, TypeName, CallTypeName
Ils sont tous deux VARCHAR (32) – dcpartners
dans ce cas, exécutez toutes les requêtes une par une, commencez par une requête et continuez jusqu'à ce que vous les exécutiez toutes, celle qui échoue aura le problème, puis examinez ce qui est stocké dans ces requêtes. colonnes – SQLMenace
Vous avez raison! La question n'est pas vraiment sur cette déclaration. J'ai SUM (DurationSecond) et c'est plus grand que INT après l'avoir rejoint. :) Merci encore. – dcpartners