powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Ошибка недопустимый идентификатор
9 сообщений из 9, страница 1 из 1
Ошибка недопустимый идентификатор
    #39903974
marlin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
При обращении к одной таблице, запрос работает:
Код: plsql
1.
2.
3.
4.
5.
6.
select train_id || '(' || natural_list_num || ')'|| control_date as nl_num,
 vagon_date_out,vagon_date_in
 from dtj_reestr
 where control_date between to_date('25.12.2017','dd.mm.yyyy')and to_date('25.01.2018','dd.mm.yyyy')
 group by control_date,train_id || '(' || natural_list_num || ')'|| control_date,vagon_date_out,vagon_date_in
 order by control_date,nl_num;


При объединении таблиц, ошибка.
Прошу помочь с запросом. Ошибка ORA-00904: "control_date" недопустимый идентификатор.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
with gruz as
 (
 select train_id || '(' || natural_list_num || ')'|| control_date as nl_num,
 vagon_date_out,vagon_date_in
 from dtj_reestr
 where control_date between to_date('25.12.2017','dd.mm.yyyy')and to_date('25.01.2018','dd.mm.yyyy')
 UNION ALL
 select train_id || '(' || natural_list_num || ')'|| control_date as nl_num,
 vagon_date_out,vagon_date_in
 from dtj_reestr_old
 where control_date between to_date('25.12.2017','dd.mm.yyyy')and to_date('25.01.2018','dd.mm.yyyy')
 )
SELECT control_date,train_id || '(' || natural_list_num || ')'|| control_date,vagon_date_out,vagon_date_in
FROM gruz
group by control_date,train_id || '(' || natural_list_num || ')'|| control_date,vagon_date_out,vagon_date_in
order by control_date,nl_num;
...
Рейтинг: 0 / 0
Ошибка недопустимый идентификатор
    #39903998
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marlin
Ошибка ORA-00904: "control_date" недопустимый идентификатор.
Выстави nls_lang в язык, на котором сможешь понять текст ошибки.
...
Рейтинг: 0 / 0
Ошибка недопустимый идентификатор
    #39904036
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помедитируй на тему имен полей CTE gruz.

SY.
...
Рейтинг: 0 / 0
Ошибка недопустимый идентификатор
    #39904041
Whiplashock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Каким образом ты собираешься получить control_date из подзапроса gruz, если в нём уже нет столбца control_date ?
...
Рейтинг: 0 / 0
Ошибка недопустимый идентификатор
    #39904060
marlin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не все так просто. Добавляю к запросу control_date, ошибка переходит на ORA-00904: "natural_list_num" недопустимый идентификатор.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
with gruz as
 (
 select train_id || '(' || natural_list_num || ')'|| control_date as nl_num,control_date,
 vagon_date_out,vagon_date_in
 from dtj_reestr
 where control_date between to_date('25.12.2017','dd.mm.yyyy')and to_date('25.01.2018','dd.mm.yyyy')
 UNION ALL
 select train_id || '(' || natural_list_num || ')'|| control_date as nl_num,control_date,
 vagon_date_out,vagon_date_in
 from dtj_reestr_old
 where control_date between to_date('25.12.2017','dd.mm.yyyy')and to_date('25.01.2018','dd.mm.yyyy')
 )
SELECT control_date,train_id || '(' || natural_list_num || ')'|| control_date,vagon_date_out,vagon_date_in
FROM gruz
group by control_date,train_id || '(' || natural_list_num || ')'|| control_date,vagon_date_out,vagon_date_in
order by control_date,nl_num;
...
Рейтинг: 0 / 0
Ошибка недопустимый идентификатор
    #39904074
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marlin
Не все так просто.


Ты с ручника-то снимись. И гдe у gruz train_id и natural_list_num?????? Вот как видно РЖД поезда под откос пускает .

SY.
...
Рейтинг: 0 / 0
Ошибка недопустимый идентификатор
    #39904076
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marlin,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
SQL> ed
Wrote file afiedt.buf

  1  with gruz as (
  2  select deptno||' '||job dj,ename,sal+nvl(comm,0) s from emp)
  3  select deptno||' '||job dj,sum(sal+nvl(comm,0)) ss from gruz
  4* group by deptno||' '||job
SQL> /
group by deptno||' '||job
                      *
ERROR at line 4:
ORA-00904: "JOB": invalid identifier


SQL> ed
Wrote file afiedt.buf

  1  with gruz as (
  2  select deptno||' '||job dj,ename,sal+nvl(comm,0) s from emp)
  3  select dj,sum(s) ss from gruz
  4* group by dj
SQL> /

DJ                                                         SS
-------------------------------------------------- ----------
10 MANAGER                                               2450
10 PRESIDENT                                             5000
30 CLERK                                                  950
30 SALESMAN                                              7800
20 MANAGER                                               2975
30 MANAGER                                               2850
10 CLERK                                                 1300
20 CLERK                                                 1900
20 ANALYST                                               6000

9 rows selected.



.....
stax
...
Рейтинг: 0 / 0
Ошибка недопустимый идентификатор
    #39904077
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marlin,

Ну и зачем тут CTE с GROUP BY по всем полям? Помедитируй на тему отличий UNION от UNION ALL.

SY.
...
Рейтинг: 0 / 0
Ошибка недопустимый идентификатор
    #39904562
marlin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax, пример здорово помог. Все получилось, запрос отлично работает. И даже UNION ALL его не испортил.
Спасибо всем. Образец запроса оставим для потомков...
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
with gruz as
 (
 select train_id || '(' || natural_list_num || ')'|| control_date as nl_num,control_date,
 vagon_date_out,vagon_date_in,ktj_summ,order_num,vagon_num
 from dtj_reestr
 where control_date between to_date('25.12.2017','dd.mm.yyyy')and to_date('25.01.2018','dd.mm.yyyy')
 UNION ALL
 select train_id || '(' || natural_list_num || ')'|| control_date as nl_num,control_date,
 vagon_date_out,vagon_date_in,ktj_summ,order_num,vagon_num
 from dtj_reestr_old
 where control_date between to_date('25.12.2017','dd.mm.yyyy')and to_date('25.01.2018','dd.mm.yyyy')
 )
SELECT control_date,nl_num,vagon_date_out,vagon_date_in,sum(ktj_summ)summa,count(order_num) as order_kol,count(distinct vagon_num) as vagon_kol
FROM gruz
group by control_date,nl_num,vagon_date_out,vagon_date_in
order by control_date,nl_num;
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Ошибка недопустимый идентификатор
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]