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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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