Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
prog Эксперт
Вступление в Клуб: 03.03.2008
|
Вт Дек 10, 2013 09:58  Помогите написать запрос |
|
Полезность: Нет оценки
|
требуется в существующее преставление в кредитах добавить колонку с показателем.
Показатель - это количество различных дат в фактических операциях.
т.е. упрощенно выглядит так
Код: | select A1_2.id
, (select count (1) from
(select distinct b1.C_DATE
from Z#VID_OPER_DOG b2, Z#FACT_OPER b1
where b1.COLLECTION_ID=A1_2.C_LIST_PAY and b1.C_OPER=b2.id
and b2.C_BUS_PROCESS = /*PL+*/::[BUS_PROCESS](CODE = 'ВЫНОС')/*PL-*/ and
(b1.C_DATE >=SYSDATE-to_number(/*PL+*/SYS_CONTEXT(user_context,'PLAN_COUNT_DAY_VYNOS')/*PL-*/))
))
from Z#PR_CRED A1_2
|
однако этот запрос не работает ORA-00904: "A1_2"."C_LIST_PAY": недопустимый идентификатор. Видимо из-за двух уровней вложенности запроса. На ум не приходит хорошего решения задачи. Прошу помочь советом. |
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Вт Дек 10, 2013 11:05   |
|
Полезность: 1
|
В общем, порекомендовал бы дергать функцию из операции - фильтра |
|
 |
prog Эксперт
Вступление в Клуб: 03.03.2008
|
Вт Дек 10, 2013 11:09   |
|
Полезность: Нет оценки
|
не совсем то что хотел услышать, но спасибо за совет. Может еще кто чего напишет... |
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Вт Дек 10, 2013 11:26   |
|
Полезность: Нет оценки
|
Я когда пытался скомпейлить Ваш пример,
ORA-00904: "A1_2"."C_LIST_PAY":
не получил.
Не понял
select A1_2.id
, (select count (1) from
В вьюхе одна колонка на поле, select a,b from z не катит
или я чего то не вкурил с примера. |
|
 |
prog Эксперт
Вступление в Клуб: 03.03.2008
|
Вт Дек 10, 2013 11:27   |
|
Полезность: Нет оценки
|
убрал PL+ вставки
Код: | select A1_2.id
, (select count (1) from
(select distinct b1.C_DATE
from Z#VID_OPER_DOG b2, Z#FACT_OPER b1
where b1.COLLECTION_ID=A1_2.C_LIST_PAY and b1.C_OPER=b2.id
and b2.C_BUS_PROCESS = 123 and
(b1.C_DATE >=SYSDATE-123)
))
from Z#PR_CRED A1_2 |
|
|
 |
maestro Профи
Вступление в Клуб: 12.10.2010
|
Вт Дек 10, 2013 11:43   |
|
Полезность: 2
|
так?
Код: | select A1_2.id
,(select count(distinct b1.C_DATE)
from Z#VID_OPER_DOG b2, Z#FACT_OPER b1
where b1.COLLECTION_ID=A1_2.C_LIST_PAY and b1.C_OPER=b2.id
and b2.C_BUS_PROCESS = 123 and
(b1.C_DATE >=SYSDATE-123)
)
from Z#PR_CRED A1_2 |
|
|
 |
prog Эксперт
Вступление в Клуб: 03.03.2008
|
Вт Дек 10, 2013 11:58   |
|
Полезность: Нет оценки
|
То что надо. Спасибо. |
|
 |
|