2013-11-28 3 views
0

Мне нужно подсчитать общее количество возвышений, которое содержит проект.Как получить общее значение по COUNT (*) и столбцу Количество

Я могу получить общее количество типов возвышений по коду ниже.

(SELECT COUNT(*) FROM Storefront.Elevation e WHERE e.ProjectID = p.ID)'Elevations' 

Но я столкнулся с ситуацией, когда возвышение для проекта может иметь более одного определенного уровня. Таким образом, проект может иметь 1-n возвышений, но теперь высота может иметь 1-n определенного типа. Поэтому, если проект имеет 3 высоты, а один из типов возвышений имеет 5 из них, тогда проект будет иметь 7 возвышений, а не 3, потому что одно из возвышений проекта имеет 5 его типа.

Вот что я пытался, но я получаю эту ошибку:

(SELECT COUNT(*) * e.Quantity FROM Storefront.Elevation e WHERE e.ProjectID = p.ID)'Elevations' 

-ошибка

Column 'Storefront.Elevation.Quantity' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause. 

Я понимаю ошибку я просто нужно знать, как исправить это написать TSQL ,

+0

поставил 'comma' между COUNT (*) и * и e.Quantity – Miller

+4

Пожалуйста, покажите вашу схему таблицы и примеры данных. – OldProgrammer

+0

А что такое p в p.ID? – Miller

ответ

1

Учитывая, что у вас есть столбец Количество против каждого уровня, почему бы просто не суммировать их?

select sum(e.Quantity) 
from Storefront.Elevation e 
where e.ProjectID = p.ID 
+0

Отлично, спасибо –

Смежные вопросы