Я пытаюсь выбрать количество строк, возвращаемых в запросе. ЗапросОшибка SQL Server, подсчитывающая подсчет в подзапросе
Select
a.itm_cd, max(b.doc_num) ,max(c.text)
from
ist b, itm_trn a, ist_cmnt c
where
a.ist_seq_num = b.ist_seq_num
and a.ist_seq_num = c.ist_seq_num
and a.ist_wr_dt = b.ist_wr_dt
and a.new_loc_cd like 'BOX115'
and a.ITT_CD = 'XFR' and a.create_dt >'21-AUG-16'
group by
a.itm_cd;
Для этого конкретного запроса я вернусь 3 строки, мне нужно написать запрос, который возвращает количество строк, возвращаются.
Я попытался это:
Select
count(*)
from
(Select
a.itm_cd, max(b.doc_num), max(c.text)
from
ist b,itm_trn a, ist_cmnt c
where
a.ist_seq_num = b.ist_seq_num
and a.ist_seq_num = c.ist_seq_num
and a.ist_wr_dt = b.ist_wr_dt
and a.new_loc_cd like 'BOX115'
and a.ITT_CD = 'XFR'
and a.create_dt > '21-AUG-16'
group by
a.itm_cd);
Это приводит к синтаксической ошибке
Msg 102, уровень 15, состояние 1 линия 1
Неправильный синтаксис около ')'.
Я не уверен, что я делаю неправильно, у меня есть аналогичный оператор SQL, который работает именно так в Oracle, но не нашел, где я запутался в SQL Server.
UPDATE:
в соответствии с первым предложением я получил я попробовал:
Select
count(*)
from
(Select
a.itm_cd, max(b.doc_num), max(c.text)
from
ist b, itm_trn a, ist_cmnt c
where
a.ist_seq_num = b.ist_seq_num
and a.ist_seq_num = c.ist_seq_num
and a.ist_wr_dt = b.ist_wr_dt
and a.new_loc_cd like 'BOX115'
and a.ITT_CD = 'XFR'
and a.create_dt > '21-AUG-16'
group by
a.itm_cd) as T
Ошибки вернулись были
Msg 8155, уровень 16, состояние 2, строка 12
Для столбца 2 'T' не указан столбец.Msg 8155, Level 16, State 2, Line 12
Для столбца 3 'T' не указан столбец.
вам нужно добавить псевдоним для вашей производной таблицы: 'группы по a.itm_cd) при Т,' – Lamak
Пробовал эту ошибку я получаю нет столбца был указан на колонку 2 «T» и никакой колонки не была указанному для столбца 3 «T» – Danimal
Вам даже не нужны эти столбцы для подсчета подсчета: 'select count (*) from (выберите a.itm_cd. .......... группу по a.itm_cd) как T; ' – Lamak