Нахождение суммы значений столбца всех записей в sql 2005 - PullRequest
1 голос
/ 03 февраля 2010

Я хочу найти СУММУ значений в столбце вес . Я хочу эту сумму для всех записей, которые определены с общим значением в одном из столбцов имя . Далее я хочу рассмотреть только те записи, которые имеют определенное значение в столбце type .

название вес тип
1 $ 12,00 A
2 $ 7,00 В
2 $ 7,00 A
1 $ 1,00 C
2 $ 7,00 В
1 $ 1,00 C
2 $ 7,00 B
1 $ 7,00 B
2 $ 7,00 C
2 $ 7,00 B

Мне нужен общий вес для имени 2, для типов A и B. Можно ли написать для этого подзапрос или можно выполнить только цикл. Tnx.

Ответы [ 3 ]

6 голосов
/ 03 февраля 2010
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')
5 голосов
/ 03 февраля 2010

это действительно зависит от интерпретации вопроса об ОП, которая для меня немного расплывчата. Но попробуйте:

SELECT
    SUM(Weight)
    FROM MyTable
    WHERE Name=2 AND Type IN ('A','B','C')
1 голос
/ 03 февраля 2010

Это покажет вам сумму весов для каждого имени, где тип A или B:

select name, sum(weight) as WeightSum
from MyTable t
where type in ('A', 'B')
group by name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...