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

53
demandé sur Anton Hughes 2013-02-14 19:06:21

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
115
répondu John Woo 2016-11-11 13:24:42

Essayez ce qui suit:

SELECT *, (FieldA + FieldB) AS Sum
FROM Table
23
répondu Obl Tobl 2013-02-14 15:08:53

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]
6
répondu Daniel Kelley 2013-02-14 15:08:42

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.

3
répondu LuigiEdlCarno 2013-02-14 15:10:54
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
2
répondu E Coder 2015-02-18 01:26:50

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
2
répondu CelticCoder 2016-02-11 16:16:30

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.

1
répondu Dan Bracuk 2013-02-14 15:11:19