2010-02-03 4 views
1

Je veux trouver le SUM des valeurs dans une colonne poids. Je veux cette somme pour tous les enregistrements qui sont identifiés avec une valeur commune dans l'une des colonnes nom. En outre, je veux considérer seulement les enregistrements qui ont une certaine valeur dans la colonne type.

nom de type de poids
12.00 A
7,00 B
7,00 A
1,00 C
7,00 B
1,00 C
7,00 B
7,00 B
7,00 C
7,00 B
Trouver la somme des valeurs d'une colonne de tous les enregistrements en SQL 2005

Je veux que le poids total pour le nom 2, pour les types A et B. une sous-requête peut être écrite pour ce ou seulement en boucle peut être fait. Tnx.

Répondre

5

cela dépend vraiment de celles interprétation de la question des postes d'observation, ce qui est un peu vague pour moi. Mais essayez-le:

SELECT 
    SUM(Weight) 
    FROM MyTable 
    WHERE Name=2 AND Type IN ('A','B','C') 
6
SELECT 
    Name, 
    Type, 
    SUM(Weight) 
FROM 
    MyTable 
GROUP BY 
    Name, 
    Type 
HAVING 
    Name = @name 
AND 
    Type = @type 

Ou, pour être spécifique à votre demande

SELECT 
    Name, 
    Type, 
    SUM(Weight) 
FROM 
    MyTable 
GROUP BY 
    Name, 
    Type 
HAVING 
    Name = '2' 
AND 
    Type IN('A', 'B') 

Cependant, si elle est purement une valeur unique que vous êtes après pour votre filtre, vous pouvez simplement SUM avec une clause WHERE.

SELECT 
    SUM(Weight) 
FROM 
    MyTable 
WHERE 
    Name = '2' 
AND 
    Type IN('A', 'B') 
+0

merci. Il semble beaucoup plus simple maintenant ... – user96403

1

Cela vous montrera la somme des poids pour chaque nom, où le type est A ou B:

select name, sum(weight) as WeightSum 
from MyTable t 
where type in ('A', 'B') 
group by name 
+0

wow. merci pour le message rapide. – user96403

Questions connexes