2010-08-20 4 views
2

tableau à quatre colonnes - id (int), Double1 (bit), Double2 (bit), le score (int)SQL colonne Somme - en utilisant instruction if pour doubler les valeurs des lignes avant de les additionner la colonne

Vous voulez écrire une requête retourne la somme SUM() de la colonne score, groupée par id, où chaque score de ligne peut être modifié en fonction des deux colonnes doubles. Donc, si le score est 10 et que double1 et/ou double2 colonnes sont vraies, le score de ligne est doublé une ou deux fois.

Répondre

6
SELECT id, SUM(score * (double1 + 1) * (double2 + 1)) 
FROM tbl 
GROUP BY id 

(Edité en fonte explicite pas nécessaire int a higher precedence.)

+0

+1 - Clever! J'allais suggérer CASE mais j'aime plus ça. – JNK

+0

Clever, fonctionne comme un charme. – coding4cats

Questions connexes