SQL Ligne de la Somme pour certaines colonnes
Je suis tenter de développer un SQL champ qui est la somme de toutes les colonnes de la ligne à l'exclusion des deux premiers. Ci-dessous mon code, qui renvoie les colonnes MonthYear, Total, Somme1, Somme2, et Somme3. J'aimerais avoir un FinalSum qui totalise Somme1,Somme2, et Somme3. C'est pour être utilisés à l'encontre de vérifier le Total de la colonne pour plus de précision. Est-il un moyen de faire cela? L'exécution de Microsoft SQL Server 2005, T-SQL
SELECT MonthYear,
COUNT(*) AS Total,
ISNULL(
SUM(
CASE
WHEN Status='Sum1' THEN 1
ELSE 0
END
)
,0) AS [Sum1],
ISNULL(
SUM(
CASE
WHEN Status='Sum2' THEN 1
ELSE 0
END
)
,0) AS [Sum2],
ISNULL(
SUM(
CASE
WHEN Status='Sum3' THEN 1
ELSE 0
END
)
,0) AS [Sum3]
FROM tablename
GROUP BY
MonthYear
- Pourriez-vous donner quelques exemples de données pour mieux expliquer cela? même les données de l'échantillon avec la sortie attendue serait aller un long chemin pour aider à expliquer ce que vous êtes après.
Vous devez vous connecter pour publier un commentaire.
Il vous manque un
FROM
sur votre requête. De toute façon, la première consisterait à l'aide d'une table dérivée:Pour SQL Server 2005+, vous pouvez également utiliser des expressions de table communes:
SUM
qui obtient toutes les conditions que vous avez sur vos autres colonnes, au lieuOk - sans doute pas la façon la plus élégante (copie enregistrés ici sur SqlFiddle)
Une autre alternative est de ce type ([SQLFiddle];
Un chemin à l'aide d'une table temporaire
Une autre façon de répéter le calcul