v7: Получить документ в запросе #719625


#0 by Absurdus
Есть номенклатура, у нее в подчинении спраочнк партий. У партий есть реквизит Приходный документ. Надо получить его дату (или хотя бы сам документ) Делаю: SELECT   M.CODE as CODE, M.DESCR as DESCR, P.SP216 as PARTIA, Жур.IDDOC as DOCUM FROM       dbo.SC84 M (nolock) LEFT JOIN dbo.SC214 As P (nolock) ON (P.PARENTEXT=M.ID) LEFT JOIN dbo._1SJourn as Жур (nolock) on (Жур.IDDOC = P.SP216) WHERE M.IsFolder = 2 GROUP BY M.CODE, M.DESCR, MP.DESCR, P.SP216, Жур.IDDoc В итоге партию подцепляются, а реквизит приходный документ нет. Пустые значения. Хотя он существует. Где не так написал?
#1 by VladZ
Извращенец. А чем 1С++ не устроил?
#2 by Chameleon1980
:) кажется с таблицей журнала доков связать и оттуда получить дату
#3 by Ёпрст
#4 by Absurdus
Запрос из одной базы к таблицам другой
#5 by Ёпрст
делай так, хотя бы (Жур.IDDOC = right(P.SP216,9)
#6 by Ёпрст
1cpp позволяет это делать в одном запросе, вплоть до типизации
#7 by Ёпрст
и метапарсер задействовать с разных баз.
#8 by User_Agronom
Через COM-соединение не проще было бы?
#9 by Absurdus
Работает, спасибо!     А если подскажешь, как дату именно последней партии       получить, то вообще цены тебе не будет!
#10 by Ёпрст
взять максимум по дате в подзапросе, потом соединение с ним для получения партии
#11 by Absurdus
максимум по дате - это какая функция? Я не силен в этом всем
#12 by Ёпрст
в подзапросе будет select max(ж.date_time_iddoc),p.id from dbo.SC214 p (nolock) left join dbo._1SJourn as ж(nolock) on ж.IDDOC = right(P.SP216,9) group by p.id
#13 by Ёпрст
ну и в основном запросе внутреннее соединение с этой табличкой по id партии и позиции дока. Усё.
#14 by Absurdus
SELECT   M.CODE as CODE, M.DESCR as DESCR, PZ.D as DATAPART FROM       dbo.SC84 M (nolock) INNER JOIN      (select max(left(ж.date_time_iddoc,8)) as D,p.id as id, p.parentext as papa       from dbo.SC214 p (nolock)         left join dbo._1SJourn as ж(nolock) on ж.IDDOC = right(P.SP216,9)       group by p.id, p.parentext) as PZ ON (PZ.PAPA = M.ID) WHERE M.IsFolder = 2 GROUP BY SM.CODE, M.DESCR, MP.DESCR, PZ.D Получается таблицы номенклатуры и всех ее партий все равно
#15 by Ёпрст
(select max(left(ж.date_time_iddoc,8)) as D, p.parentext as papa       from dbo.SC214 p (nolock)         left join dbo._1SJourn as ж(nolock) on ж.IDDOC = right(P.SP216,9)       group by  p.parentext) as PZ ON (PZ.PAPA = M.ID)
#16 by Absurdus
Всё работает как часы, спасибо!
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С