2011-06-01 3 views
0

Quelle serait la syntaxe SQL pour sélectionner 4 colonnes différentes dans une seule ligne dans une table, les ajouter ensemble, puis insérer cette valeur dans une 5ème colonne différente dans la même ligne? Les colonnes sont toutes numériques (11,2). Par exemple- Le nom de la table est DataCheck il y a un ID qui est la clé primaire alors comment puis-je sélectionner col1, col2, col3, col4 où ID = 232 ... etc et les additionner, et insérer dans col4 où id = 232 ... etcAide de la syntaxe SQL

+0

Etes-vous en train d'essayer de mettre à jour une 5ème colonne dans le tableau ou simplement de renvoyer une 5ème colonne calculée dans le résultat de votre requête? – rsbarro

+1

En général, vous ne voulez pas stocker de valeurs calculées. Vous devrez mettre à jour le total calculé stocké chaque fois que la valeur de l'un des opérandes change. – mikeY

Répondre

2

à moins que je suis malentendu:

UPDATE MyTable SET col5 = col1 + col2 + col3 + col4 WHERE id = 232 
+0

+1. Si vite ... Il pourrait aussi avoir besoin d'utiliser 'OUTPUT inséré' – a1ex07

-1

Cette déclaration de mise à jour devrait résoudre votre problème.

update table set col5 = col4 + col3 + col2 + col1 
+0

si vous voulez que toutes les lignes soient mises à jour vous n'avez pas besoin de le faire ligne par ligne avec id –

-1

Terminez-vous - mais cela fonctionne-t-il?

MISE À JOUR DataCheck SET Col5 = (col1 + col2 + col3 + col4)

2

Errr .... il ne va pas beaucoup plus simple que l'évidence:

update myTable 
set column5 = column1 
      + column2 
      + column3 
      + column4 
      + column5 
where <some-where-clause> 
0

Pourquoi stockez-vous le valeur calculée dans la même rangée?

En général, vous ne stockez pas les mêmes données deux fois (dans les colonnes 1,2,3,4 et 5). Si d'une manière ou d'une autre ils ne sont pas égaux, comment saurez-vous quelle colonne est correcte?