powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как соединить (JOIN) два подзапроса?
4 сообщений из 4, страница 1 из 1
Как соединить (JOIN) два подзапроса?
    #32022713
Фотография toypaul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В нижеприведенном запросе почему-то в следующих операциях соединения невиден первый подзапрос, у которого алиас NN. Как правильно соединить эти подзапросы?

select id,h1.date,h1.value,h2.date,h2.value
from
(select s.id,j.date_time_iddoc
from
dt2988 n,
_1SJOURN j,
sc656 s
WHERE
s.ID = n.sp2993 and
j.IDDOC = n.IDDOC and
left(DATE_TIME_IDDOC, >= '20000810' and left(DATE_TIME_IDDOC, <= '20000820'
) as NN
left join
(
select objid,value,date from _1sconst h
where id=658 and date =
(
select max(date)
from _1sconst hh
where hh.objid=h.objid and hh.id=658 and hh.date <= convert(datetime,left(NN.DATE_TIME_IDDOC,)
)
)
as h1 on s.id = h1.objid
left join
(
select objid,value,date from _1sconst h
where id=659 and date =
(select max(date)
from _1sconst hh
where hh.objid=h.objid and hh.id=659) and hh.date <= convert(datetime,left(NN.DATE_TIME_IDDOC,)
)
as h2 on s.id = h2.objid
order by id
...
Рейтинг: 0 / 0
Как соединить (JOIN) два подзапроса?
    #32022716
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select NN.id,h1.date,h1.value,h2.date,h2.value
from (select s.id,j.date_time_iddoc from dt2988 n, _1SJOURN j, sc656 s
WHERE s.ID = n.sp2993 and j.IDDOC = n.IDDOC and left(DATE_TIME_IDDOC,8 ) >= '20000810'
and left(DATE_TIME_IDDOC, 8 ) <= '20000820'
) as NN
left join(select objid,value,date from _1sconst h where id=658 and date =
(select max(date) from _1sconst hh where hh.objid=h.objid and hh.id=658
and hh.date <= convert(datetime,left(NN.DATE_TIME_IDDOC,8 ))
) as h1 on NN .id = h1.objid
left join(select objid,value,date from _1sconst h where id=659 and date =
(select max(date) from _1sconst hh where hh.objid=h.objid and hh.id=659)
and hh.date <= convert(datetime,left(NN.DATE_TIME_IDDOC,8 ))
) as h2 on NN .id = h2.objid
order by id
...
Рейтинг: 0 / 0
Как соединить (JOIN) два подзапроса?
    #32022726
Фотография toypaul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неправильно! Ошибка:

The column prefix 'NN' does not match with a table name or alias name used in the query.

left join(select objid,value,date from _1sconst h where id=658 and date =
(select max(date) from _1sconst hh where hh.objid=h.objid and hh.id=658
and hh.date <= convert(datetime,left( !!! вот здесь алиас не видно !!! NN.DATE_TIME_IDDOC,8 ))
)
) as h1 on !!! а здесь алиас видно !!! NN.id = h1.objid

Может запрос как по другому переписать
...
Рейтинг: 0 / 0
Как соединить (JOIN) два подзапроса?
    #32022732
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
перепишите вообще не пользуясь конструкциями типа ... from (select ...
это возможно
потом сами удивитесь насколько проще получилось
я б написал - ну уж больно лень думать
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как соединить (JOIN) два подзапроса?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]