2014-01-23 5 views
0

Я пытаюсь найти запрос, который даст мне подсчет другой таблицы в запросе. Проблема в том, что я понятия не имею, что установить, где в части count. Как сейчас, он просто вернет счет всех значений в этой таблице.Добавление count в select query

Select 
ID as Num, 
(select Count(*) from TASK where ID=ID(Also tried Num)) as Total 
from ORDER 

Цель состоит в том, чтобы иметь результат, который читается как

Num Total 
_________________ 
1  13 
2  5 
3  22 

ответ

0

Вы должны псевдонимы таблиц. Так что я думаю, что вы хотите:

Select ID as Num, 
     (select Count(*) from TASK t where t.ID = o.ID) as Total 
from ORDER o; 

Кстати, ORDER это страшное имя для таблицы, потому что это является зарезервированным работа в SQL.

+0

Я понимаю, что это плохое имя, но я просто сократил его настоящее имя, чтобы я мог использовать его в качестве примера. – user2920788

0

Вы можете сделать это в качестве суб запроса или присоединиться (или заявление OVER.)

Я думаю, что соединение является ярким, когда вы первое обучение SQL

Select 
ID as Num, count(TASK.ID) AS Total 
from ORDER 
left join TASK ON ORDER.ID=TASK.ID 
GROUP BY ORDER.ID 
+0

Помимо наличия синтаксической ошибки в предложении 'group by', этот запрос не совпадает с тем, который задан в вопросе. Например, он вернет неправильные значения, если 'id' дублируется в' order'. –