вопрос по работе с массивами
На страницу Пред. 1, 2
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
prog Эксперт
Вступление в Клуб: 03.03.2008
|
Чт Май 19, 2011 08:48   |
|
Полезность: Нет оценки
|
cl_r%id(false) - что-то новенькое...
попробуйте так
Код: | (select
a(a.[summa]:summ,
a.[date]:c_date,
a.[DT]:is_d,
a.[DOC].[sum]:dt_summ,
acc.[CLIENT_V].[name]:cl_v_name,
acc.[CLIENT_R].[name]:cl_r_name
)
in
acc.[ARC_MOVE])
|
давите f12 и смотрите чистый PL\SQL код, если так понятнее |
|
 |
omela Участник со стажем
Вступление в Клуб: 01.07.2008
|
Чт Май 19, 2011 11:09   |
|
Полезность: Нет оценки
|
tarasov-es пишет: | Код: | (select
a(a.[summa]:summ,
a.[date]:c_date,
a.[DT]:is_d,
md.[sum]:dt_summ,
cl_v.[name]:cl_v_name--,
--cl_r.[name]:cl_r_name
)
in
::[RECORDS],
([MAIN_DOCUM]:md),
([CLIENT]:cl_v)--,
--([CLIENT]:cl_r)
all
where
a%collection = acc.[ARC_MOVE]
and a.[DOC]=md
and acc.[CLIENT_V]=cl_v
--and acc.[CLIENT_R]%id=cl_r%id(false)
) |
acc - входящий параметр - фин счет
acc.[cl_v] - ссылка на контакт - владелец
acc.[cl_r] - ссылка на контакт - клиент для расчета(бывает не всегда)
в таком виде запрос возвращает выписку по счету.
если убрать комментарии то запрос ничего не вернет |
Лучше бы написали, что вам надо выбрать конкретно и какие входящие параметры имеются, потому что на мой взгляд в текущем варианте выборки избыточное кол-во таблиц, при тех данных, которые вы в запрос выводите. _________________ Трехглазый передает привет банкирам, и желает им долгого здравия (:. |
|
 |
ggrey Участник со стажем
Вступление в Клуб: 01.10.2007
|
Чт Май 19, 2011 11:12   |
|
Полезность: Нет оценки
|
Попробую предложить свои 5 копеек. В таком виде ваш запрос очень похож на SQL, а PL+ позволяет не думать о том какие таблицы вам нужно "джойнить". Т.е. я бы написал этот запрос так:
Код: |
(select
a(a.[summa]:summ,
a.[date]:c_date,
a.[DT]:is_d,
a.[DOC]->(MAIN_DOCUM)[sum]:dt_summ,
acc.[CLIENT_V].[name]:cl_v_name,
acc.[CLIENT_R].[name]:cl_r_name
)
in
acc.[ARC_MOVE]
)
|
При этом важно понимать, что наименования клиентов в данном примере будут заменены парсером на вычисленные заранее переменные. |
|
 |
tarasov-es Участник со стажем
Вступление в Клуб: 18.05.2011
|
Чт Май 19, 2011 14:26   |
|
Полезность: Нет оценки
|
Огромное всем спасибо. Вроде все получилось. Вот результат.
Код: | (select
a(a.[summa]:summ,
to_char(a.[date],'mm'):c_date,
to_char(a.[date],'dd.mm.yyyy'):f_date,
a.[DT]:is_d,
decode(a.[DT],true,nvl(md.[kl_kt].[2].[2],md.[kl_kt].[1].[1].[NAME]),nvl(md.[kl_dt].[2].[2],md.[kl_dt].[1].[1].[NAME])):kontr
)
in
::[RECORDS],
([MAIN_DOCUM]:md) all
where
a%collection = acc.[ARC_MOVE]
and a.[DOC]=md
order by a.[date] asc
) |
и сразу вопрос..
как сделать группировку.
нужно чтобы a.[summa] суммировалась а все остальное в group by.
пробовал перед сортировкой писать
Код: |
group by
to_char(a.[date],'mm'),
to_char(a.[date],'dd.mm.yyyy'),
a.[DT],
decode(a.[DT],true,nvl(md.[kl_kt].[2].[2],md.[kl_kt].[1].[1].[NAME]),nvl(md.[kl_dt].[2].[2],md.[kl_dt].[1].[1].[NAME])) |
ошибок нет, но при выполнении отчета выдается ошибка о том что выражение не group by.. |
|
 |
pas Профи
Вступление в Клуб: 20.11.2007
|
Чт Май 19, 2011 14:44   |
|
Полезность: Нет оценки
|
sum(nvl(a.[summa],0) : summ |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|