Соединение данных в таблицах прямых SQL запросов
Здравствуйте, коллеги!
Я подключаюсь к базе SQL по ADO. База 1С самописная. Мне нужно из документа получить номенклатуру и поставщика. Номенклатура в табличной части находится, а поставщик в основной таблице:
Поставщик это поле FLD49, но тут добавляется суффикс, получается мне нужно делать inner join но по какому полю я не очень понимаю, см. продолжение ниже:
Справочник "Поставщики" это _Reference25. Соединение нужно делать по полю _IDRRef = _Fld49RRef
Буду благодарен за подсказки и советы. Если брать выборку напрямую получается COM-объект ComAsArray из бинарных данных. Картинки прилагаю.
Я подключаюсь к базе SQL по ADO. База 1С самописная. Мне нужно из документа получить номенклатуру и поставщика. Номенклатура в табличной части находится, а поставщик в основной таблице:
Поставщик это поле FLD49, но тут добавляется суффикс, получается мне нужно делать inner join но по какому полю я не очень понимаю, см. продолжение ниже:
SEL ECT TOP (1000) [_IDRRef]
,[_Version]
,[_Marked]
,[_Date_Time]
,[_Number]
,[_Posted]
,[_Fld48RRef]
,[_Fld49RRef]
,[_Fld3027]
,[_Fld11121RRef]
,[_Fld11122]
,[_Fld11186]
,[_Fld2267]
FROM [1c_SKLAD].[dbo].[_Document30]
ПоказатьСправочник "Поставщики" это _Reference25. Соединение нужно делать по полю _IDRRef = _Fld49RRef
SELECT TOP (1000) [_IDRRef]
,[_Version]
,[_Marked]
,[_PredefinedID]
,[_Code]
,[_Description]
,[_Fld1609]
,[_Fld1610]
,[_Fld1611]
,[_Fld1612]
,[_Fld1613]
,[_Fld1614]
FR OM [1c_SKLAD].[dbo].[_Reference25]
ПоказатьБуду благодарен за подсказки и советы. Если брать выборку напрямую получается COM-объект ComAsArray из бинарных данных. Картинки прилагаю.
Прикрепленные файлы:




По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Ну вы же все написали, или вопрос в чем-то еще?
Берете документ, находите по какому полю он связан с табличной частью, лень искать, сами разберетесь, пусть это будетмнэээ "Полуэкт" _IDRRefDOC. Далее элементарно, псевдокод (если надо именно 100 док-ов, то с предварительным их отбором во временную таблицу (SEL ECT TOP 100*
INTO #tmpTestTable
FROM [1c_SKLAD].[dbo].[_Document30])
Зачем оно вам надо через ADO понятия не имею.
На всякий случай, где вы там бинарные данные в выборке нашли не знаю, разве, что тащите хранилища значений или строки неограниченной длины. Проще говоря BLOB and CBLOB.
Берете документ, находите по какому полю он связан с табличной частью, лень искать, сами разберетесь, пусть это будет
INTO #tmpTestTable
FROM [1c_SKLAD].[dbo].[_Document30])
SELECT TOP 100 100 A.*, B.*, C.* FR OM [1c_SKLAD].[dbo].[_Document30] AS A
LEFT JOIN [1c_SKLAD].[dbo].[_Reference25] AS B
ON B._IDRRef = A._Fld49RRef
INNER JOIN [1c_SKLAD].[dbo].[_YOUR_TABLE_WITH_GOODS] AS C
ON C._IDRRefDOC = A.[_IDRRef]
Зачем оно вам надо через ADO понятия не имею.
На всякий случай, где вы там бинарные данные в выборке нашли не знаю, разве, что тащите хранилища значений или строки неограниченной длины. Проще говоря BLOB and CBLOB.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот