Comment additionner deux champs dans une requête SQL
J'ai besoin d'obtenir le total de deux champs qui sont dans la même ligne et d'entrer ce nombre dans un champ à la fin de cette même ligne.
C'est mon code.
Sum(tbl1.fld1 + tbl1.fld2) AS [Total]
Est-ce à quoi sert la fonction SUM, ou pouvez-vous utiliser uniquement la fonction SUM pour obtenir le total d'une colonne?
Merci
7 réponses
SUM
est une fonction d'agrégation. Il calculera le total pour chaque groupe. {[8] } est utilisé pour calculer deux colonnes ou plus dans une rangée.
, 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
SUM est utilisé pour additionner la valeur dans une colonne pour plusieurs lignes. Vous pouvez simplement ajouter vos colonnes ensemble:
select tblExportVertexCompliance.TotalDaysOnIncivek + tblExportVertexCompliance.IncivekDaysOtherSource AS [Total Days on Incivek]
La fonction somme n'obtient que le total d'une colonne. Pour additionner deux valeurs de colonnes différentes, convertissez les valeurs en int et ajoutez-les à l'aide de l'Opérateur + -
Select (convert(int, col1)+convert(int, col2)) as summed from tbl1
J'espère que ça aide.
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
En raison de mes points de réputation étant inférieure à 50, Je ne pouvais pas commenter ou voter pour la réponse de E Coder ci-dessus. C'est la meilleure façon de le faire afin que vous n'ayez pas à utiliser le groupe car j'ai eu un problème similaire.
En faisant SUM((coalesce(VALUE1 ,0)) + (coalesce(VALUE2 ,0)))
comme Total, cela vous obtiendra le nombre que vous voulez mais vous débarrassera également de toute erreur pour ne pas effectuer un Group By.
C'était ma requête et m'a donné un nombre total et le montant total de chaque concessionnaire, puis m'a donné un sous-total pour la Qualité et Risqué courtier en prêts.
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, tout ce que vous avez à faire est de les ajouter. Ensuite, vous recevrez la somme de ces deux colonnes pour chaque ligne retournée par la requête.
Ce que votre code fait est d'ajouter les deux colonnes ensemble, puis d'obtenir une somme des sommes. Cela fonctionnera, mais ce n'est peut-être pas ce que vous essayez d'accomplir.