Текущее время: Вт, апр 23 2024, 15:46

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: В WHERE-условии не должны появляться поля из правой таблицы LEFT OUTER
СообщениеДобавлено: Чт, авг 04 2016, 14:36 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, янв 14 2013, 10:37
Сообщения: 795
Пол: Мужской
Помогите кенгуру, делаю первый свой запрос:

Code:
SELECT
  usr02~bname
  usr02~class
  usracl~pname
  usr02~erdat
  usr02~trdat
INTO TABLE
  gs_snc FROM usr02
LEFT JOIN usracl ON
  usr02~bname = usracl~bname
WHERE
  usr02~USTYP EQ 'A' and
  usr02~UFLAG NE 64
ORDER by usr02~class usr02~bname.



Хочу добавить в него условие usracl~pname is null

Code:
IF P_OPTUPL is not initial.
  SELECT
  usr02~bname
  usr02~class
  usracl~pname
  usr02~erdat
  usr02~trdat
INTO TABLE
  gs_snc FROM usr02
LEFT JOIN usracl ON
  usr02~bname = usracl~bname
WHERE
  usr02~USTYP EQ 'A' and
  usr02~UFLAG NE 64 and
  [b]usracl~pname is null[/b]
ORDER by usr02~class usr02~bname.
ENDIF.


Получаю ошибку: "В WHERE-условии не должны появляться поля из правой таблицы LEFT OUTER."
Как же быть? Как переделать запрос? Спасибо!


Последний раз редактировалось RikoNw Чт, авг 04 2016, 16:10, всего редактировалось 1 раз.

Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: В WHERE-условии не должны появляться поля из правой таблицы LEFT OUTER
СообщениеДобавлено: Чт, авг 04 2016, 15:55 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
проще удалить ненужные записи из результата,
а какая у вас версия sap_aba?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: В WHERE-условии не должны появляться поля из правой таблицы LEFT OUTER
СообщениеДобавлено: Чт, авг 04 2016, 16:06 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, янв 14 2013, 10:37
Сообщения: 795
Пол: Мужской
trop написал(а):
проще удалить ненужные записи из результата,
а какая у вас версия sap_aba?


SAP ABA 7.31, не хотелось бы усложнять код, чтобы самому не путаться, но видимо придется. То есть без ABAP не обойтись?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: В WHERE-условии не должны появляться поля из правой таблицы LEFT OUTER
СообщениеДобавлено: Чт, авг 04 2016, 16:20 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1246
RikoNw: вы уверены, что у вас там будут нулловые значения у этого поля? Если вы не добавляли записи программно и если это поле не появилось в результате вашего расширения (а это сильно вряд ли), то там не будет null-значений. А будет там пустая строка. И тогда можно вставить usracl~pname = space в условие join-соединения вместо проблемной конструкции.
Или вы просто хотите получить все записи, для которых нет записи в usracl? если так, то надо переписать не используя left outer join, заменив его на not exist select pname from usracl и т.д.

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Последний раз редактировалось Кодер Чт, авг 04 2016, 16:29, всего редактировалось 1 раз.

Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: В WHERE-условии не должны появляться поля из правой таблицы LEFT OUTER
СообщениеДобавлено: Чт, авг 04 2016, 16:28 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
возможность добавить условие на правую таблицу left join появилась только в 740
при использовании строгой нотации (new opensql syntax)


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: В WHERE-условии не должны появляться поля из правой таблицы LEFT OUTER
СообщениеДобавлено: Чт, авг 04 2016, 16:28 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, янв 14 2013, 10:37
Сообщения: 795
Пол: Мужской
Кодер написал(а):
RikoNw: вы уверены, что у вас там будут нулловые значения у этого поля? Если вы не добавляли записи программно и если это поле не появилось в результате вашего расширения (а это сильно вряд ли), то там не будет null-значений. А будет там пустая строка. И тогда можно вставить usracl~pname = space в условие join-соединения вместо проблемной конструкции.


Поправил на

Code:
SELECT
  usr02~bname
  usr02~class
  usracl~pname
  usr02~erdat
  usr02~trdat
INTO TABLE
  gs_snc FROM usr02
LEFT JOIN usracl ON
  usr02~bname = usracl~bname and
[b] usracl~pname = space[/b]
WHERE
  usr02~USTYP EQ 'A' and
  usr02~UFLAG NE 64
ORDER by usr02~class usr02~bname.

Выводятся те же данные, что и в оригинальном запросе, только нужное поле ( usracl~pname ) для всех записей пустое :D


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: В WHERE-условии не должны появляться поля из правой таблицы LEFT OUTER
СообщениеДобавлено: Чт, авг 04 2016, 16:31 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1246
RikoNw опишите словами, что вы хотите получить. мой вариант отбирает по вашим условиям записи из usr02, для которых есть записи в usracl, у которых pname пустое( и да, left outer по факту тут не нужен, хватит и inner join).
повторюсь:
Или вы просто хотите получить все записи, для которых нет записи в usracl? если так, то надо переписать не используя left outer join, а заменив его на not exist select pname from usracl и т.д.

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: В WHERE-условии не должны появляться поля из правой таблицы LEFT OUTER
СообщениеДобавлено: Чт, авг 04 2016, 16:35 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, янв 14 2013, 10:37
Сообщения: 795
Пол: Мужской
Да, хочу именно все записи, для которых нет записи в usracl. Словами, это хочу узнать, у каких пользователей не присвоено SNC-имя.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: В WHERE-условии не должны появляться поля из правой таблицы LEFT OUTER  Тема решена
СообщениеДобавлено: Чт, авг 04 2016, 16:38 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1246
Тех для кого у нет записи usracl
Code:
SELECT
usr02~bname
usr02~class
usr02~erdat
usr02~trdat
INTO TABLE
gs_snc FROM usr02
WHERE
not exists ( select pname
from usracl
where usracl~bname = usr02~bname ) and
usr02~USTYP EQ 'A' and
usr02~UFLAG NE 64
ORDER by usr02~class usr02~bname.

а вот тех, у кого имя не вбито - ваш запрос с pname = space

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: В WHERE-условии не должны появляться поля из правой таблицы LEFT OUTER
СообщениеДобавлено: Чт, авг 04 2016, 16:48 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, янв 14 2013, 10:37
Сообщения: 795
Пол: Мужской
Code:
usr02~bname
  usr02~class
  usr02~erdat
  usr02~trdat
INTO TABLE
  gs_snc FROM usr02
WHERE
not exists ( select pname from usracl where usracl~bname = usr02~bname ) and
usr02~USTYP EQ 'A' and
usr02~UFLAG NE 64
ORDER by usr02~class usr02~bname.


Дамп =) DBIF_RSQL_INVALID_RSQL


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: В WHERE-условии не должны появляться поля из правой таблицы LEFT OUTER
СообщениеДобавлено: Чт, авг 04 2016, 16:57 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, янв 14 2013, 10:37
Сообщения: 795
Пол: Мужской
Попытаюсь разрулить это на этапе вывода...


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: В WHERE-условии не должны появляться поля из правой таблицы LEFT OUTER
СообщениеДобавлено: Чт, авг 04 2016, 17:00 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, янв 14 2013, 10:37
Сообщения: 795
Пол: Мужской
Получилось :D


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Ahrefs [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB