Текущее время: Вс, июл 20 2025, 15:10

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Select в блоке DEFINE END-OF-DEFINITION. можно ... нет?
СообщениеДобавлено: Вт, июн 26 2007, 09:47 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Сб, янв 27 2007, 08:27
Сообщения: 337
Откуда: СНГ ... ЮГ
Пол: Мужской
Всем доброго времени суток!

вот нужны суммы из таблицы по одному полю, но с разными условиями, мне подсказали что надо делать столько селектов, сколько условий.
чтобы не повторять код, решил селект оформить как макрос передвая ему разные условия. и что то он не работает.
Code:
DEFINE SelectTurn.
    select  SUM( DMBTR ) as SDX_Dt
            INTO corresponding fields of sum_Oborot
            FROM J_3RKKRS WHERE &1. " вот тут точка красная в редакторе
  END-OF-DEFINITION.

. . .
SelectTurn 'bukrs = p_bukrs AND gjahr = p_year  AND debet in r_schet AND kredit in r_schet AND XNEGPK NE space'.

при проверке или компиляции ругается на
Цитата:
Incorrect expression "'bukrs = p_bukrs AND gjahr = p_year AND debet in r_schet AND kredit in r_schet AND XNEGPK NE space'" in logical condition.

Возможно я не прав с самого начала при подходе к решению задачи.
но .... , мысли закончились.
хелп про DEFINE я прочел.

P.S. без блока макроса селект работает!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Select в блоке DEFINE END-OF-DEFINITION. можно ... нет?
СообщениеДобавлено: Вт, июн 26 2007, 09:53 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Salmaner написал:
Всем доброго времени суток!

вот нужны суммы из таблицы по одному полю, но с разными условиями, мне подсказали что надо делать столько селектов, сколько условий.
чтобы не повторять код, решил селект оформить как макрос передвая ему разные условия. и что то он не работает.
Code:
DEFINE SelectTurn.
    select  SUM( DMBTR ) as SDX_Dt
            INTO corresponding fields of sum_Oborot
            FROM J_3RKKRS WHERE &1. " вот тут точка красная в редакторе
  END-OF-DEFINITION.

. . .
SelectTurn 'bukrs = p_bukrs AND gjahr = p_year  AND debet in r_schet AND kredit in r_schet AND XNEGPK NE space'.

при проверке или компиляции ругается на
Цитата:
Incorrect expression "'bukrs = p_bukrs AND gjahr = p_year AND debet in r_schet AND kredit in r_schet AND XNEGPK NE space'" in logical condition.

Возможно я не прав с самого начала при подходе к решению задачи.
но .... , мысли закончились.
хелп про DEFINE я прочел.

P.S. без блока макроса селект работает!

Всё правильно он ругается - аргумент подставляется полностью как есть, т.е. с кавычками и итоговый запрос выглядит как
Code:
    select  SUM( DMBTR ) as SDX_Dt
            INTO corresponding fields of sum_Oborot
            FROM J_3RKKRS WHERE 'bukrs = p_bukrs AND gjahr = p_year  AND debet in r_schet AND kredit in r_schet AND XNEGPK NE space'.

что конечно-же синтаксически не верно.
[/code]

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июн 26 2007, 10:01 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Сб, янв 27 2007, 08:27
Сообщения: 337
Откуда: СНГ ... ЮГ
Пол: Мужской
а без кавычек я не могу передавать он каждый пробел будет воспринимать как разделитель параметров.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июн 26 2007, 10:04 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Попробуй всю эту колбасу в стринг кинуть, а его уже в макрос... Уверенности нет, чисто догадка.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июн 26 2007, 10:10 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Сб, янв 27 2007, 08:27
Сообщения: 337
Откуда: СНГ ... ЮГ
Пол: Мужской
John Doe
неа, не прокатило. :roll:


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июн 26 2007, 10:10 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, сен 22 2004, 08:42
Сообщения: 1079
Откуда: Москва
Пол: Мужской
Используйте динамические условия:
https://www.sdn.sap.com/irj/sdn/go/port ... 50822#q-16


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июн 26 2007, 10:15 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Сб, янв 27 2007, 08:27
Сообщения: 337
Откуда: СНГ ... ЮГ
Пол: Мужской
Mike1
так хотел по проще сделать ...
а с динамикой такой гемор ...
кстати впервые такой сайст вижу.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июн 26 2007, 10:33 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Code:
DATA: LCL_DRAW TYPE TABLE OF DRAW WITH HEADER LINE,
      LCL_DOKAR TYPE DOKAR,
      LCL_DOKNR TYPE DOKNR,
      STRING    TYPE STRING.

DEFINE SELECTTURN.
  SELECT  * FROM DRAW INTO TABLE LCL_DRAW
      WHERE (&1).
END-OF-DEFINITION.

START-OF-SELECTION.
  LCL_DOKAR = 'ORD'.
  LCL_DOKNR = '0000000010000000000007252'.
  STRING = 'DOKAR = LCL_DOKAR  AND DOKNR = LCL_DOKNR'.

  SELECTTURN STRING.
У меня все получилось, просто условие в макросе в скобки возьми.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июн 26 2007, 11:31 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Сб, янв 27 2007, 08:27
Сообщения: 337
Откуда: СНГ ... ЮГ
Пол: Мужской
John Doe

ага, и точка сразу становится черной.
ёклмн как просто .....
пасиба!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 27 2007, 09:25 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
John Doe написал:
У меня все получилось, просто условие в макросе в скобки возьми.

Ух ты, оказывается в селекте появился динамический WHERE ?! 8-()
Я и не знал. Вот это подарок от САПы, не прошло и двадцати лет... :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 27 2007, 09:47 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Parazit написал:
John Doe написал:
У меня все получилось, просто условие в макросе в скобки возьми.

Ух ты, оказывается в селекте появился динамический WHERE ?! 8-()
Я и не знал. Вот это подарок от САПы, не прошло и двадцати лет... :)

Непомню, когда был зарелизен SAP R/3 4.0, но вполне возможно что с тех пор и не прошло двадцати лет

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 27 2007, 10:02 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
Дерьжите Parazit-a двумя руками, а то он счас перепишет все Z-разработки за последние 20 лет ;-)


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

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


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

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


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

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