Bonjour à tous,

J'ai un problème de somme avec SQL Server Management Studio 2008.

J'ai une requête de la forme :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
INSERT INTO #ZBALANCE
SELECT 
	'D' AS COL1, 
	'' AS COL2, 
	'1' AS COL3, 
	'' AS COL4, 
	'019A' AS COL5, 
	'' AS COL6, 
	EG.CG_NUM AS COL7, 
	'' AS COL8, 
	EG.EC_INTITULE AS COL9, 
	CAST(EG.EC_Sens AS nvarchar(50)) AS COL10, 
	CAST((CASE WHEN EG.EC_SENS=0 THEN EG.EC_MONTANT ELSE EG.EC_MONTANT*-1 END) AS nvarchar(50)) AS COL11, 
	'' AS COL12, 
	...
	0 AS COL26,
	CAST(EG.EC_Sens AS decimal(1)) * CAST(EG.EC_Montant AS decimal(20,6)) AS COL27
FROM dbo.F_ECRITUREC EG 
INNER JOIN dbo.F_COMPTEG CG on CG.CG_NUM=EG.CG_NUM
WHERE YEAR(EG.JM_DATE)=2009 
	AND EG.EC_POINT = 0 
	AND EG.JO_NUM!='IFRS'
	AND CG.N_Nature='4'
	AND EG.EC_Lettrage = ''
ORDER BY COL24, COL25;
Je ne vous ai pas mis toute la requête car il n'y en a besoin ici. Juste la table #ZBALANCE est une table temporaire créée au début du script.

Je récupère bien les bonnes données, mais, pour une raison que j'ignore, ma colonne COL27 ne se calcule pas bien pour certaines données.

En effet, j'obtiens ceci :

...
29;D;29;1;29;019A;;4011000;test;Design;1;1092.910000;;;A;FR1;//REF PIECE L100 : FC091203 - LETTRAGE : A;;;;;;;;401198;test;29;1092.910000
30;D;30;1;30;019A;;4011000;test;Design;1;362.390000;;;A;FR1;//REF PIECE L100 : 30/11/09 - LETTRAGE : A;;;;;;;;401198;test;30;0.000000
31;D;31;1;31;019A;;4011000;test;Design;1;2687.030000;;;A;FR1;//REF PIECE L100 : 31/10/09 - LETTRAGE : A;;;;;;;;401198;test;31;0.000000
32;D;32;1;32;019A;;4011000;test;Design;1;299.000000;;;;FR1;//REF PIECE L100 : FF071452;;;;;;;;401198;test;32;299.000000
33;D;33;1;33;019A;;4011000;test;Design;1;418.600000;;;;FR1;//REF PIECE L100 : FF072035;;;;;;;;401198;test;33;418.600000
34;D;34;1;34;019A;;4011000;test;Design;1;1255.800000;;;;FR1;//REF PIECE L100 : FF072673;;;;;;;;401198;test;34;1255.800000
35;D;35;1;35;019A;;4011000;test;Design;1;14.870000;;;C;FR1;//REF PIECE L100 : VIRT EMIS CB - LETTRAGE : C;;;;;;;;401198;test;35;0.000000
...
Vous l'aurez compris, la colonne COL27 (dernière en rouge) est normalement égale au produit de la colonne COL10 et la colonne COL11 (signe -> -1 négatif et 1 positif, et montant).

SQL Server a t-il des problèmes pour calculer dans un insert/select ?

PS : la première colonne est un id généré automatiquement.

Merci de m'aider.
Cordialement.