Je dois obtenir le total des deux champs qui sont dans la même ligne et entrer ce nombre dans un champ à la fin de cette même ligne.
Ceci est mon code.
Sum(tbl1.fld1 + tbl1.fld2) AS [Total]
S'agit-il de l'utilisation de la fonction SOMME ou pouvez-vous utiliser uniquement la fonction SOMME pour obtenir le total d'une colonne?
Merci
SUM
est une fonction d'agrégat. Il calculera le total pour chaque groupe. +
est utilisé pour calculer deux colonnes ou plus dans une ligne.
Considérons cet exemple,
ID VALUE1 VALUE2
===================
1 1 2
1 2 2
2 3 4
2 4 5
SELECT ID, SUM(VALUE1), SUM(VALUE2)
FROM tableName
GROUP BY ID
résultera
ID, SUM(VALUE1), SUM(VALUE2)
1 3 4
2 7 9
SELECT ID, VALUE1 + VALUE2
FROM TableName
résultera
ID, VALUE1 + VALUE2
1 3
1 4
2 7
2 9
SELECT ID, SUM(VALUE1 + VALUE2)
FROM tableName
GROUP BY ID
résultera
ID, SUM(VALUE1 + VALUE2)
1 7
2 16
Essayez ce qui suit:
SELECT *, (FieldA + FieldB) AS Sum
FROM Table
SOMME est utilisé pour additionner la valeur d'une colonne pour plusieurs lignes. Vous pouvez simplement ajouter vos colonnes ensemble:
select tblExportVertexCompliance.TotalDaysOnIncivek + tblExportVertexCompliance.IncivekDaysOtherSource AS [Total Days on Incivek]
ID VALUE1 VALUE2
===================
1 1 2
1 2 2
2 3 4
2 4 5
select ID, (coalesce(VALUE1 ,0) + coalesce(VALUE2 ,0) as Total from TableName
La fonction sum obtient seulement le total d'une colonne. Pour additionner deux valeurs de colonnes différentes, convertissez les valeurs en entiers et additionnez-les à l'aide de l'opérateur +
Select (convert(int, col1)+convert(int, col2)) as summed from tbl1
J'espère que ça t'as aidé.
En raison de mes points de réputation inférieurs à 50, je ne pouvais pas commenter ni voter pour la réponse de E Coder ci-dessus. C'est la meilleure façon de le faire, vous n'avez donc pas à utiliser le groupe, car j'avais un problème similaire.
En faisant SUM((coalesce(VALUE1 ,0)) + (coalesce(VALUE2 ,0)))
en tant que Total, vous obtiendrez le numéro de votre choix, mais vous débarrasserez également de toute erreur si vous ne réalisez pas un groupe. Telle était ma demande et m'a donné un compte total et le montant total pour chaque concessionnaire, puis m'a donné un sous-total pour les prêts concessionnaires Quality et Risky.
SELECT
DISTINCT STEP1.DEALER_NBR
,COUNT(*) AS DLR_TOT_CNT
,SUM((COALESCE(DLR_QLTY,0))+(COALESCE(DLR_RISKY,0))) AS DLR_TOT_AMT
,COUNT(STEP1.DLR_QLTY) AS DLR_QLTY_CNT
,SUM(STEP1.DLR_QLTY) AS DLR_QLTY_AMT
,COUNT(STEP1.DLR_RISKY) AS DLR_RISKY_CNT
,SUM(STEP1.DLR_RISKY) AS DLR_RISKY_AMT
FROM STEP1
WHERE DLR_QLTY IS NOT NULL OR DLR_RISKY IS NOT NULL
GROUP BY STEP1.DEALER_NBR
Si vous voulez ajouter deux colonnes ensemble, il vous suffit de les ajouter. Ensuite, vous obtiendrez la somme de ces deux colonnes pour chaque ligne renvoyée par la requête.
Votre code consiste à ajouter les deux colonnes ensemble, puis à obtenir la somme des sommes. Cela fonctionnera, mais ce ne sera peut-être pas ce que vous essayez d'accomplir.
Juste un rappel sur l'ajout de colonnes. Si l'une des valeurs est NULL, le total de ces colonnes devient NULL. C’est pourquoi certaines affiches ont recommandé la fusion, le deuxième paramètre étant 0
Je sais que c'était une publication plus ancienne, mais je voulais ajouter ceci pour que ce soit complet.