Похоже, что вы после HAVING
здесь:
CREATE TABLE dbo.Country ([name] varchar(3),
gdp smallint,
city varchar(3));
INSERT INTO dbo.Country (name,
gdp,
city)
VALUES ('S.A', 60, 'amr'),
('S.A', 60, 'amb'),
('US ', 200, 'ken'),
('US ', 70, 'mas'),
('aus', 80, 'po '),
('aus', 90, 'tr ');
GO
SELECT C.name
FROM dbo.Country C
GROUP BY C.name
HAVING SUM(C.gdp) < 100
GO
DROP TABLE dbo.Country;
Если вы хотите строки, где "ВВП страны меньше 100", это не возвращает строк, так как нет стран, гдеSUM
из gdp
на ниже , чем 100. (S.A
имеет 120
, US
имеет 270
, а aus
имеет 170
).
Если gbp
в стране (не в городе) работает по-разному, вам может понадобиться использовать другую функцию агрегирования (AVG
, MAX
?) Или совершенно другой метод,если это так, вы должны объяснить какие строки вы ожидаете в своем вопросе и почему .