Tsql 在sql 2005中查找所有记录的列的值之和

Tsql 在sql 2005中查找所有记录的列的值之和,tsql,subquery,Tsql,Subquery,我想在列权重中查找值的总和。我希望在其中一列name中用公共值标识的所有记录都有此总和。此外,我只想考虑列中有某个值的记录类型< /强>。br> 名称重量类型 1$12.00A 2$7.00b 2$7.00A 1$1.00 C 2$7.00b 1$1.00 C 2$7.00b 1$7.00b 2$7.00C 2$7.00b 我想要类型A和B的名称2的总权重。是否可以为此编写子查询,或者只能执行循环。Tnx SELECT Name, Type, SUM(Weight) FR

我想在列权重中查找值的总和。我希望在其中一列name中用公共值标识的所有记录都有此总和。此外,我只想考虑列中有某个值的记录<强>类型< /强>。br>
名称重量类型
1
$
12.00A
2
$
7.00b
2
$
7.00A
1
$
1.00 C
2
$
7.00b
1
$
1.00 C
2
$
7.00b
1
$
7.00b
2
$
7.00C
2
$
7.00b

我想要类型A和B的名称2的总权重。是否可以为此编写子查询,或者只能执行循环。Tnx

SELECT
    Name,
    Type,
    SUM(Weight)
FROM
    MyTable
GROUP BY
    Name,
    Type
HAVING
    Name = @name
AND
    Type = @type
或者具体到您的要求

SELECT
    Name,
    Type,
    SUM(Weight)
FROM
    MyTable
GROUP BY
    Name,
    Type
HAVING
    Name = '2'
AND
    Type IN('A', 'B')
但是,如果它只是一个单独的值,那么可以使用WHERE子句求和

SELECT
    SUM(Weight)
FROM
    MyTable
WHERE
    Name = '2'
AND
    Type IN('A', 'B')
或者具体到您的要求

SELECT
    Name,
    Type,
    SUM(Weight)
FROM
    MyTable
GROUP BY
    Name,
    Type
HAVING
    Name = '2'
AND
    Type IN('A', 'B')
但是,如果它只是一个单独的值,那么可以使用WHERE子句求和

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

这将显示每个名称的权重之和,其中类型为A或B:

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

这将显示每个名称的权重之和,其中类型为A或B:

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

这实际上取决于人们对老年退休金问题的理解,这对我来说有点模糊。但是试一下:

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

这实际上取决于人们对老年退休金问题的理解,这对我来说有点模糊。但是试一下:

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