2014-12-19 3 views
0

Я хотел бы сделать эквивалентКак группа присоединяется к OpenSQL

SELECT * FROM A LEFT OUTER JOIN (B INNER JOIN C) 

с использованием OpenSQL. Возможно ли это, и что такое синтаксис?

+0

Вы пытались определить представление в SE11 и использовать его в правой части вашего запроса? – vwegert

+0

Нет, это может сделать, хорошая идея. Возможно, я вернусь к этому решению, если нет другого варианта. Однако введение новых представлений только для того, чтобы сделать работу с запросами, кажется мне немного излишним. – user462982

ответ

0

Возможно, но группировка должна быть встроенным видом в своем собственном праве. Итак, приспособив ваш пример здесь.

SELECT * 
FROM A 
    LEFT OUTER JOIN (
     SELECT B.FirstColumn, C.SecondColumn, B.Thirdcolumn 
     FROM B 
      INNER JOIN C 
     ) D ON A.Something = D.SomethingElse 

Нет Внешние ссылки - Вид рядный не может ссылаться на столбцы из таблицы А, если она не является частью инлайн-запроса в своем собственном праве.

Более подробную информацию о запросе и намерениях, скорее всего, потребуется более подробно.

+0

Это не работает. Я попытался это 'SELECT * ОТ but000 как LEFT OUTER JOIN ( SELECT * ОТ but000, как б внутреннее соединение but000, как с на б ~ ПАРТНЕР EQ с ~ PARTNER ) в качестве Д на О ~ PARTNER EQ д ~ PARTNER .' , но компилятор все еще жалуется на скобки, «не находящиеся в словаре» (примечание я добавил «как d», но без какой-либо разницы). Есть ли что-то не так с синтаксисом? – user462982

+0

Имена столбцов в строчном представлении должны быть четкими, чтобы быть адресованными. Я бы использовал '.', а не' ~ 'и' = ', а не' EQ', но это в основном для переносимости диалектов и простоты чтения. –

+0

сделал редактирование, имена столбцов для внутреннего вида не могут быть дублированы. –

Смежные вопросы