powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Нужна помощь с запросом SQL
15 сообщений из 15, страница 1 из 1
Нужна помощь с запросом SQL
    #36646774
Костя-SQL in IBM iSeries
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть запрос:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
select A.tranum,a.tranumsuf,A.OUTNUM,TRIM(OM.ADRLIN1)OUTNAM,
OM.USRARE010, OM.CERFRD,OM.FISNUM,BATDAT,DOCNUM,
B.ARTNUM,AM.ARTNAM,UNI,B.PRI,
EXTAMT/ 100  Summa, Adjamt1 Adjustment,
am.artcnvfac1*Uni UnitCase
from basdb60/om01 OM, basdb60/am01 AM, basdb60/tx10 A,
basdb60/tx20 B LEFT OUTER JOIN
(select tranum,tranumsuf,artnum,crycod,
artoccnum,sum(adjamtcln/ 1000000 ) Adjamt1 from basdb60/tx22
group by tranum,tranumsuf,artnum,crycod,artoccnum) D ON
(A.TRANUM = D.TRANUM and A.TRANUMSUF = D.TRANUMSUF
and B.ARTNUM = D.ARTNUM
and B.CRYCOD = D.CRYCOD
and B.ARTOCCNUM = D.ARTOCCNUM)
where SUBPRCSTA1 <> 'UNP'
and A.tecprcsta1 = ''
and A.TRANUM = B.TRANUM and A.TRANUMSUF = B.TRANUMSUF
and B.EFTUPDSEQ =  999  and B.artvrsrso not in ('29','59')
and a.batdat between  1100521  and  1100522 
and OM.outnum = A.outnum and AM.artnum = B.artnum
and AM.EFTDAT =  1999999 

он работал корректно и правильно без ошибок (работа ведется в IBM iSeries), после аппгрейда IBM (обновление до новой версии), данный запрос не работает, выдавая ошибку: JOIN predicate not valid. Ошибка ясна, он ссылается на то, что в предикате Join в условии идет ссылка на внешнюю таблицу A.
Данный запрос считается правильным только при таком условии.

Был на сайте разработчиков уточнял на счет аппгрейда системы, что изменили. Посоветовали переделать запрос.
...
Рейтинг: 0 / 0
Нужна помощь с запросом SQL
    #36646824
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это спамо-кросспост .
Реакции не заслуживает.
...
Рейтинг: 0 / 0
Нужна помощь с запросом SQL
    #36646841
Костя-SQL in IBM iSeries
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL*PlusЭто спамо-кросспост .
Реакции не заслуживает.


Заслуживает. Какой же это спам если я ищу знающих людей???
...
Рейтинг: 0 / 0
Нужна помощь с запросом SQL
    #36646864
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Костя-SQL in IBM iSeries пишет:
> Автор: Костя-SQL in IBM iSeries
> <Костя-SQL in IBM iSeries>
> Есть запрос:
>
Код: plaintext
select A.tranum,a.tranumsuf,A.OUTNUM,TRIM(OM.ADRLIN1)OUTNAM,\nOM.USRARE010, OM.CERFRD,OM.FISNUM,BATDAT,DOCNUM,\nB.ARTNUM,AM.ARTNAM,UNI,B.PRI,\nEXTAMT/ 100  Summa, Adjamt1 Adjustment,\nam.artcnvfac1*Uni UnitCase\nfrom basdb60/om01 OM, basdb60/am01 AM, basdb60/tx10 A,\nbasdb60/tx20 B LEFT OUTER JOIN\n(select tranum,tranumsuf,artnum,crycod,\nartoccnum,sum(adjamtcln/ 1000000 ) Adjamt1 from basdb60/tx22\ngroup by tranum,tranumsuf,artnum,crycod,artoccnum) D ON\n(A.TRANUM = D.TRANUM and A.TRANUMSUF = D.TRANUMSUF\nand B.ARTNUM = D.ARTNUM\nand B.CRYCOD = D.CRYCOD\nand B.ARTOCCNUM = D.ARTOCCNUM)\nwhere SUBPRCSTA1 <> \'UNP\'\nand A.tecprcsta1 = \'\'\nand A.TRANUM = B.TRANUM and A.TRANUMSUF = B.TRANUMSUF\nand B.EFTUPDSEQ =  999  and B.artvrsrso not in (\'29\',\'59\')\nand a.batdat between  1100521  and  1100522 \nand OM.outnum = A.outnum and AM.artnum = B.artnum\nand AM.EFTDAT =  1999999 

> он работал корректно и правильно без ошибок (работа ведется в IBM

А при чём тут MySQL тогда ?

0) у тебя очень странные названия таблиц. Плохо использовать такие названия. (с \'/\')

from basdb60/om01 OM, basdb60/am01 AM, basdb60/tx10 A,
basdb60/tx20 B LEFT OUTER JOIN


1) У тебя мешаются в одном запросе JOIN-ы в ANSI -стиле (.. JOIN ..) и старые
(FROM t1, t2, t3 ... where). Это плохо. Я бы сказал, очень плохо. ПОтому что
к концу ты уже можешь не представлять, что с чем JOIN-ится. Переписывай всё
на один стиль, ANSI JOIN-ы лучше. Тем более, ежели тут предполагается работа
в разных СУБД.

2) когда ты всё это сделаешь, проблема думаю решится сама собой. Либо ты
поймёшь, что писал какую-то лажу, которой и быть не может, либо СУБД поймёт,
что ты от неё хочешь.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Нужна помощь с запросом SQL
    #36646875
Костя-SQL in IBM iSeries
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
А при чём тут MySQL тогда ?

0) у тебя очень странные названия таблиц. Плохо использовать такие названия. (с '/')

from basdb60/om01 OM, basdb60/am01 AM, basdb60/tx10 A,
basdb60/tx20 B LEFT OUTER JOIN


1) У тебя мешаются в одном запросе JOIN-ы в ANSI -стиле (.. JOIN ..) и старые
(FROM t1, t2, t3 ... where). Это плохо. Я бы сказал, очень плохо. ПОтому что
к концу ты уже можешь не представлять, что с чем JOIN-ится. Переписывай всё
на один стиль, ANSI JOIN-ы лучше. Тем более, ежели тут предполагается работа
в разных СУБД.

2) когда ты всё это сделаешь, проблема думаю решится сама собой. Либо ты
поймёшь, что писал какую-то лажу, которой и быть не может, либо СУБД поймёт,
что ты от неё хочешь.




Спасибо за ответ, дело в том, что я ее не писал и все базы здесь созданные не нашими людьми, я пришел на место где этот запрос используется ежедневно для создания отчетов. При аппгреде системы, запрос не работает.

Нужно упростить его.

Еще раз спасибо.
...
Рейтинг: 0 / 0
Нужна помощь с запросом SQL
    #36646971
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да чтобы вам всю жизнь в редакторе без подсветки синтаксиса писать.
...
Рейтинг: 0 / 0
Нужна помощь с запросом SQL
    #36646992
Костя-SQL in IBM iSeries
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettДа чтобы вам всю жизнь в редакторе без подсветки синтаксиса писать.


Итак пишу уважаемый.
...
Рейтинг: 0 / 0
Нужна помощь с запросом SQL
    #36647010
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Костя-SQL in IBM iSeriesHettДа чтобы вам всю жизнь в редакторе без подсветки синтаксиса писать.Итак пишу уважаемый.Пользуйтесь тегом SRC и предпросмотром! И будет у вас редактор с подсветкой кода
...
Рейтинг: 0 / 0
Нужна помощь с запросом SQL
    #36647037
Фотография arni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как насчет?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
select A.tranum, a.tranumsuf, A.OUTNUM, TRIM(OM.ADRLIN1)OUTNAM,
       OM.USRARE010, OM.CERFRD, OM.FISNUM, BATDAT, DOCNUM,
       B.ARTNUM, AM.ARTNAM, UNI, B.PRI,
       EXTAMT/ 100  Summa, Adjamt1 Adjustment,
       am.artcnvfac1*Uni UnitCase
  from basdb60/om01 OM
  join basdb60/tx10 A on OM.outnum = A.outnum
  join basdb60/tx20 B on A.TRANUM = B.TRANUM and
                         A.TRANUMSUF = B.TRANUMSUF
  join basdb60/am01 AM on AM.artnum = B.artnum
  LEFT JOIN (select tranum, tranumsuf, artnum, crycod,
                    artoccnum, sum(adjamtcln/ 1000000 ) Adjamt1
               from basdb60/tx22
              group by tranum, tranumsuf, artnum, crycod, artoccnum) D
         ON (A.TRANUM = D.TRANUM and
             A.TRANUMSUF = D.TRANUMSUF and
             B.ARTNUM = D.ARTNUM and
             B.CRYCOD = D.CRYCOD and
             B.ARTOCCNUM = D.ARTOCCNUM)
 where SUBPRCSTA1 <> 'UNP'
   and A.tecprcsta1 = ''
   and B.EFTUPDSEQ =  999 
   and B.artvrsrso not in ('29','59')
   and a.batdat between  1100521  and  1100522 
   and AM.EFTDAT =  1999999 
...
Рейтинг: 0 / 0
Нужна помощь с запросом SQL
    #36647110
Костя-SQL in IBM iSeries
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arniкак насчет?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
select A.tranum, a.tranumsuf, A.OUTNUM, TRIM(OM.ADRLIN1)OUTNAM,
       OM.USRARE010, OM.CERFRD, OM.FISNUM, BATDAT, DOCNUM,
       B.ARTNUM, AM.ARTNAM, UNI, B.PRI,
       EXTAMT/ 100  Summa, Adjamt1 Adjustment,
       am.artcnvfac1*Uni UnitCase
  from basdb60/om01 OM
  join basdb60/tx10 A on OM.outnum = A.outnum
  join basdb60/tx20 B on A.TRANUM = B.TRANUM and
                         A.TRANUMSUF = B.TRANUMSUF
  join basdb60/am01 AM on AM.artnum = B.artnum
  LEFT JOIN (select tranum, tranumsuf, artnum, crycod,
                    artoccnum, sum(adjamtcln/ 1000000 ) Adjamt1
               from basdb60/tx22
              group by tranum, tranumsuf, artnum, crycod, artoccnum) D
         ON (A.TRANUM = D.TRANUM and
             A.TRANUMSUF = D.TRANUMSUF and
             B.ARTNUM = D.ARTNUM and
             B.CRYCOD = D.CRYCOD and
             B.ARTOCCNUM = D.ARTOCCNUM)
 where SUBPRCSTA1 <> 'UNP'
   and A.tecprcsta1 = ''
   and B.EFTUPDSEQ =  999 
   and B.artvrsrso not in ('29','59')
   and a.batdat between  1100521  and  1100522 
   and AM.EFTDAT =  1999999 



Спасибо !!!! огромное, он работает !!! Есть все таки хорошие люди )
Большое спасибо !!!
...
Рейтинг: 0 / 0
Нужна помощь с запросом SQL
    #36647134
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Костя-SQL in IBM iSeries,

Так какая именно это СУБД?
замечание насчет кросспостинга было совершенно уместным.
...
Рейтинг: 0 / 0
Нужна помощь с запросом SQL
    #36647163
Костя-SQL in IBM iSeries
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftКостя-SQL in IBM iSeries,

Так какая именно это СУБД?
замечание насчет кросспостинга было совершенно уместным.

СУБД: IBM DB2 iSeries, но там никто так и не ответил.
...
Рейтинг: 0 / 0
Нужна помощь с запросом SQL
    #36647170
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftКостя-SQL in IBM iSeries,

Так какая именно это СУБД?
замечание насчет кросспостинга было совершенно уместным.Вычитал в интернетах, что это DB2. За сим топик переношу.

Модератор: Тема перенесена из форума "MySQL".
...
Рейтинг: 0 / 0
Нужна помощь с запросом SQL
    #36647182
Фотография arni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Костя-SQL in IBM iSeriesСпасибо !!!! огромное, он работает !!! Есть все таки хорошие люди )
Большое спасибо !!!Вам следует пересмотреть практику смешанного синтаксиса соединения в одном запросе. А еще лучше пойти до конца и вовсе изжить неявные соединения.
...
Рейтинг: 0 / 0
Нужна помощь с запросом SQL
    #36647281
Фотография Новый Год
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
названия таблиц нормальные, это OS/400 System naming conventions. библиотека/таблица

нормальные sql имена там тоже можно использовать
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Нужна помощь с запросом SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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