|
Запрос на SQL Соединения | ☑ | ||
---|---|---|---|---|
0
Hans
05.12.17
✎
15:06
|
Проблема с соединениями в запросе на SQL. Не могу сделать внутреннее и два левых к внутреннему на SQL
Образец аналог SQL запроса на 1С: "ВЫБРАТЬ Номенклатура.Ссылка КАК Ссылка, НомДополнительныеРеквизиты.Свойство КАК Свойство ИЗ Справочник.Номенклатура КАК Номенклатура ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура.ДополнительныеРеквизиты КАК НомДополнительныеРеквизиты ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ПВХ ПО НомДополнительныеРеквизиты.Свойство = ПВХ.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ПВХ2 ПО НомДополнительныеРеквизиты.Свойство = ПВХ2.Ссылка ПО Номенклатура.Ссылка = НомДополнительныеРеквизиты.Ссылка" Запрос на SQL: SELECT Doc."Invoice-net" Invoice_net, Doc."Invoice-num" Invoice_num, RS.Date F_Date, RC.Num F_Num FROM "ROUTE-NEWS" News INNER JOIN "INVOICE" Doc LEFT JOIN "REGSALE" RS ON Doc."Factura-net" = RS."regsale-net" AND Doc."Factura-num" = RS."regsale-num" LEFT JOIN "REGCOST" RC ON Doc."Factura-net" = RC."regcost-net" AND Doc."Factura-num" = RC."regcost-num" ON News.Net = Doc."Invoice-net" AND News.Num= Doc."Invoice-num" Ругается на последнюю строчку "ON News.Net = Doc."Invoice-net" AND News.Num= Doc."Invoice-num"" [17:00:09] Error while executing SQL query on database 'RRR': near "ON": syntax error Как сделать аналогичные соединения на SQL? |
|||
1
HEKPOH
05.12.17
✎
15:12
|
(0) в профайлере глянь запрос из 1С и увидишь, что скуль не понимает вот таких соединений:
ON Doc."Factura-net" = RC."regcost-net" AND Doc."Factura-num" = RC."regcost-num" ON News.Net = Doc."Invoice-net" AND News.Num= Doc."Invoice-num" потому как для второго ON не указана таблица |
|||
2
HEKPOH
05.12.17
✎
15:12
|
+(1) он нарисует скулевские соедниения
|
|||
3
art commander
05.12.17
✎
15:38
|
(0) Используй временные таблицы.
|
|||
4
Hans
05.12.17
✎
15:41
|
Переделал уже запрос.
Сделал все соединения на одном уровне. В качестве главной таблицы взял INVOICE |
|||
5
HEKPOH
05.12.17
✎
15:57
|
А я был неправ((( Вот скульный запрос:
SELECT T1._IDRRef, T2._Fld2170RRef FROM dbo._Reference98 T1 INNER JOIN dbo._Reference98_VT2168 T2 LEFT OUTER JOIN dbo._Chrc809 T3 ON ((T2._Fld2170RRef = T3._IDRRef)) AND (T3._Fld817 = 0) LEFT OUTER JOIN dbo._Chrc809 T4 ON ((T2._Fld2170RRef = T4._IDRRef)) AND (T4._Fld817 = 0) ON (T1._IDRRef = T2._Reference98_IDRRef) WHERE ((T1._Fld817 = 0)) AND (T2._Fld817 = 0) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |