|
v7: Получить документ в запросе | ☑ | ||
---|---|---|---|---|
0
Absurdus
10.09.14
✎
10:22
|
Есть номенклатура, у нее в подчинении спраочнк партий. У партий есть реквизит Приходный документ. Надо получить его дату (или хотя бы сам документ)
Делаю: 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
VladZ
10.09.14
✎
10:23
|
(0) Извращенец. А чем 1С++ не устроил?
|
|||
2
Chameleon1980
10.09.14
✎
10:25
|
(1) :)
(0) кажется с таблицей журнала доков связать и оттуда получить дату |
|||
3
Ёпрст
10.09.14
✎
10:25
|
(Жур.IDDOC = P.SP216)
тут ошибка |
|||
4
Absurdus
10.09.14
✎
10:25
|
Запрос из одной базы к таблицам другой
|
|||
5
Ёпрст
10.09.14
✎
10:26
|
делай так, хотя бы
(Жур.IDDOC = right(P.SP216,9) |
|||
6
Ёпрст
10.09.14
✎
10:26
|
(4) 1cpp позволяет это делать в одном запросе, вплоть до типизации
|
|||
7
Ёпрст
10.09.14
✎
10:27
|
и метапарсер задействовать с разных баз.
|
|||
8
User_Agronom
10.09.14
✎
10:29
|
(4) Через COM-соединение не проще было бы?
|
|||
9
Absurdus
10.09.14
✎
10:34
|
(5) Работает, спасибо!
А если подскажешь, как дату именно последней партии получить, то вообще цены тебе не будет! |
|||
10
Ёпрст
10.09.14
✎
10:35
|
(9) взять максимум по дате в подзапросе, потом соединение с ним для получения партии
|
|||
11
Absurdus
10.09.14
✎
10:36
|
(10) максимум по дате - это какая функция? Я не силен в этом всем
|
|||
12
Ёпрст
10.09.14
✎
10:38
|
в подзапросе будет 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
Ёпрст
10.09.14
✎
10:39
|
ну и в основном запросе внутреннее соединение с этой табличкой
по id партии и позиции дока. Усё. |
|||
14
Absurdus
10.09.14
✎
11:03
|
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
Ёпрст
10.09.14
✎
11:17
|
INNER JOIN
(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
Absurdus
10.09.14
✎
11:41
|
(15) Всё работает как часы, спасибо!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |