Вот простой запрос, который вы можете запустить в командной строке ECL.
LIST HOBBY WITH HOBBY = "MyHobby" @CUSTOMERID @CUSTOMERID.NAME
Позвольте мне объяснить это.
Поскольку вы смотрите на отношение «многие к 1», вы можете сделать это, используя элементы виртуального словаря, если начнете с таблицы «многие» (я знаю, нелогично, верно?)
LIST HOBBY
Здесь мы просто поручаем движку сделать простое отображение данных из файла HOBBY.
WITH WITH HOBBY = "MyHobby"
Я исхожу из того, что вы уже создали элемент словаря с именем ХОББИ — вероятно, D-типа, указывающего на правильный атрибут.
@CUSTOMERID
Еще одно предположение: у вас есть элемент словаря D-типа, который указывает на атрибут в HOBBY, который имеет @CUSTOMERID. Я предполагаю, что @CUSTOMERID является единственным значением ради этого ответа. Это просто указывает LIST отображать эту часть информации для каждой записи.
@CUSTOMERID.NAME
Это словарь I-типа, который вам нужно будет создать, если вы еще этого не сделали. По сути, в атрибуте 2 элемента словаря у вас будет что-то вроде TRANS("CUSTOMER",@CUSTOMERID,2,"X")
. Это говорит ему прочитать запись с идентификатором, найденным в @CUSTOMERID для текущей записи хобби, и вернуть вам атрибут 2 (я предполагаю, что атрибут 2 — это место, где вы храните имя клиента, изменяйте по желанию. «X» сообщает Функция TRANS просто возвращает пустую строку, если запись CUSTOMER не может быть найдена.
person
Dan McGrath
schedule
06.08.2013