Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Ошибка недопустимый идентификатор / 9 сообщений из 9, страница 1 из 1
17.12.2019, 11:59
    #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
17.12.2019, 12:22
    #39903998
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка недопустимый идентификатор
marlin
Ошибка ORA-00904: "control_date" недопустимый идентификатор.
Выстави nls_lang в язык, на котором сможешь понять текст ошибки.
...
Рейтинг: 0 / 0
17.12.2019, 12:56
    #39904036
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка недопустимый идентификатор
Помедитируй на тему имен полей CTE gruz.

SY.
...
Рейтинг: 0 / 0
17.12.2019, 13:04
    #39904041
Whiplashock
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка недопустимый идентификатор
Каким образом ты собираешься получить control_date из подзапроса gruz, если в нём уже нет столбца control_date ?
...
Рейтинг: 0 / 0
17.12.2019, 13:18
    #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
17.12.2019, 13:34
    #39904074
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка недопустимый идентификатор
marlin
Не все так просто.


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

SY.
...
Рейтинг: 0 / 0
17.12.2019, 13:38
    #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
17.12.2019, 13:38
    #39904077
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка недопустимый идентификатор
marlin,

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

SY.
...
Рейтинг: 0 / 0
18.12.2019, 11:10
    #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
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Ошибка недопустимый идентификатор / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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