Вход | Регистрация


Запрос на SQL Соединения

Запрос на SQL Соединения
Я
   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?
 
 
   HEKPOH
 
1 - 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 не указана таблица
   HEKPOH
 
2 - 05.12.17 - 15:12
+(1) он нарисует скулевские соедниения
   art commander
 
3 - 05.12.17 - 15:38
(0) Используй временные таблицы.
   Hans
 
4 - 05.12.17 - 15:41
Переделал уже запрос.
Сделал все соединения на одном уровне. В качестве главной таблицы взял INVOICE
   HEKPOH
 
5 - 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)

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует