|
Ошибка ORA-01427
|
|||
---|---|---|---|
#18+
IronMikeStax, Я не понимаю этой части кода (выделил цветом): select t1.rowid,count(*) cc from --update dsbd_margin_trans t1 set (t1.mdr,t1.id_saler)= (select MDR,id_saler from (SELECT t.dt, t.grafnum, t.id_pos, t.id_saler,sum(amount) as amount, sum(CASE WHEN t.id_type=1 THEN det.reward ELSE det.reward*-1 END)+sum(CASE WHEN t.id_type=1 THEN det.discount ELSE det.discount*-1 END) AS MDR FROM (select * from transit2.trans@sun where id_cont in ('8CAAEFEA6E0C4D1094B1139F182B6AF1','EF5D606A6E1A47E0AEC712CFF89B030F', '64B1A95E8E244EBDE053044A14ACEA8A')) t JOIN transit2.services@sun ser ON ser.id_usl = t.id_usl LEFT JOIN transit2.trans_detail@sun det ON det.id_trans=t.id_trans and det.id_type=3 WHERE ser.uname = 'л' AND t.grafnum > 0 AND t.id_type!=3 GROUP BY t.dt, t.grafnum, t.id_pos, t.id_saler) t2 ,dsbd_margin_trans t1 where t1.grafnum=t2.grafnum and t1.id_pos=t2.id_pos and t1.dt=t2.dt and t1.amount=t2.amount) where t1.main_id in (select id_cont from v_tmp_business_products where nvl(name_business,0)='GPC RUS') and (t1.dt >= date '2019-04-01' and t1.dt < date '2019-04-05'); group by t1.rowid t1 точно на своем месте? update надо заменить селектом, я б заменил примерно так про ; уже написали, был невнимательный шоб меньше менять можно так попробовать Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
мне тяжело что-то советовать без таблиц скорее ето схема, как бы я искал ошибочку .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 14:04 |
|
Ошибка ORA-01427
|
|||
---|---|---|---|
#18+
Stax, выдал 1 строчку... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 15:50 |
|
Ошибка ORA-01427
|
|||
---|---|---|---|
#18+
IronMike, Посмотрел в исходном подзапросе: действительно по DT, GRAFNUM, ID_POS и AMOUNT - есть 1 дубль. Но ID_SALER разный. Почему тогда этот дубликат возникает? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 15:56 |
|
Ошибка ORA-01427
|
|||
---|---|---|---|
#18+
IronMikeStax, выдал 1 строчку... теперь с ней (с ее данными) разберайтесь для етой строки (для етого ИД) подзапрос (select MDR,id_saler ...) возвращает больше одной строки .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 15:57 |
|
Ошибка ORA-01427
|
|||
---|---|---|---|
#18+
IronMikeПосмотрел в исходном подзапросе: действительно по DT, GRAFNUM, ID_POS и AMOUNT - есть 1 дубль. Но ID_SALER разный. Почему тогда этот дубликат возникает? 21997199 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 16:22 |
|
Ошибка ORA-01427
|
|||
---|---|---|---|
#18+
IronMikeIronMike, Посмотрел в исходном подзапросе: действительно по DT, GRAFNUM, ID_POS и AMOUNT - есть 1 дубль. Но ID_SALER разный. Почему тогда этот дубликат возникает? как вариант ужесточить условие where t1.grafnum=t2.grafnum and t1.id_pos=t2.id_pos and t1.dt=t2.dt and t1.amount=t2.amount .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 17:06 |
|
Ошибка ORA-01427
|
|||
---|---|---|---|
#18+
Elic, Да, понял) В общем, суть в том, что в исходной базе - 1 строчка, а в коде для ее обновления - 2 строчки ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 17:46 |
|
Ошибка ORA-01427
|
|||
---|---|---|---|
#18+
Stax, Так это же исходное условие)) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 17:56 |
|
Ошибка ORA-01427
|
|||
---|---|---|---|
#18+
IronMikeStax, Так это же исходное условие)) исходное условие приводит к ошибке, поетому 1) поменять условие 2) разобраться с данными, почему подзапрос возвращает больше 1-й строки .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 18:00 |
|
Ошибка ORA-01427
|
|||
---|---|---|---|
#18+
StaxIronMikeStax, Так это же исходное условие)) исходное условие приводит к ошибке, поетому 1) поменять условие 2) разобраться с данными, почему подзапрос возвращает больше 1-й строки .... stax Да, надо будет подумать, как ужесточить условие. Странно, что до этого за 2 года не было таких случаев) Спасибо большое за помощь! ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2019, 18:10 |
|
|
start [/forum/topic.php?fid=52&msg=39878277&tid=1881961]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 17ms |
total: | 147ms |
0 / 0 |