Что делать, если no current record for fetch operation?

Принцессочка
Дата: 28.10.2005 11:52:04
Народ, вот у меня вроде запрос наконец-то пропарсился без ошибок. Но при выполнении пишет:
The cursor identified in the update or delete statement is not positioned on . no current record for fetch operation. Что я делаю не так? :(

На всякий случай ниже привожу запрос:

select lp.*,
       u.fio,
       kk.name as subkontoname,
       a.acc,
       (select d.res from decode(lp.curr, 2, 'UAH', 3, '$', 4, 'EUR', 8, 'RUR',
       2, 'UAH', 3, '$', 4, 'EUR', c.name) d) as CurrName,
       a.name,
       f.name as firmname,
       (select res from Get_Real_Rate(lp.dat_paym, lp.curr,:MAINCURR)) as rate_nbu,
       (select summa_ from get_summ_val_by_rate(lp.dat_paym, lp.summa, 
lp.curr,:MAINCURR)) as summausd,
       u2.fio as LastUser,
       (select out_val from nvl((select res from decode((select res from
       decode('~!!!!~', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1', sg.security,'0')),
       '0', 
kk.name,'1',sg.name,'1',sg.name,'1',sg.name,'1',sg.name,'1',sg.name,'1',sg.name,sg.name)),kk.name)) as SubkontogroupName,
       (select summa_ from get_summ_val_by_rate(lp.dat_paym, lp.summa, 
lp.curr,:MAINCURR)) as oplat_usd1,
       (select OUT_VAL from nvl(
        (select res from
        decode(:MAINCURR,3,oop.oplat_usd,8,oop.oplat_rur,4, 
oop.oplat_eur,2,oop.oplat_grn,
        3,oop.oplat_usd,8,oop.oplat_rur,4, oop.oplat_eur, 0
        ))
        , 0)) as oplat_usd2,
       lp.summa - ssss.summ_payed as oplat_val,
       (select OUT_VAL from nvl(ssss.count_paym_, 0)) as count_paym_,
       f.id,
       sg.security,
       ad.direction_name
  from accrual_paym lp, vocabulary c, users u, subkonto_group sg
       left join organizaton kk on kk.id_group = sg.id_group
       left join activity_derection ad on ad.id_direction = lp.id_direction
       left join users u2 on lp.last_edit_user = u2.id_user
       left join view_oplat oop on oop.id_accrual = lp.id_paym
       left join firm f on f.id = lp.id_firm
       left join view_summ_payed ssss on ssss.id_accrual = lp.id_paym
       left join account a on lp.id_account = a.id_account
 where
   lp.id_user = u.id_user
   and lp.curr = c.id
   and lp.subkonto = kk.id_org
srf2000
Дата: 28.10.2005 12:03:40
Принцессочка

На всякий случай ниже привожу запрос:



ужыс. зачем явные и неявные джойны смешиваем?
Мимопроходящий
Дата: 28.10.2005 12:04:39

Привет, Принцессочка!
Ты пишешь:

Принцессочка
П> Народ, вот у меня вроде запрос наконец-то пропарсился без ошибок.

Хто тут?!

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.3

Принцессочка
Дата: 28.10.2005 12:25:24
srf2000
Принцессочка

На всякий случай ниже привожу запрос:



ужыс. зачем явные и неявные джойны смешиваем?


ты имеешь ввиду, что вот это:
where
lp.id_user = u.id_user
and lp.curr = c.id
and lp.subkonto = kk.id_org
тоже нужно лефт джойнами?
Принцессочка
Дата: 28.10.2005 12:27:01
Мимопроходящий

Хто тут?!

может, лучше поможешь? :0)
Dayroon
Дата: 28.10.2005 12:27:34

почему сразу left? бывают еще full,right и inner. Откуда такая мода на
левые джойны пошла, интересно даже?

Posted via ActualForum NNTP Server 1.3

Мимопроходящий
Дата: 28.10.2005 12:29:44

Привет, Принцессочка!
Ты пишешь:

Принцессочка
П> может, лучше поможешь? :0)
Это не лечится.

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.3

Принцессочка
Дата: 28.10.2005 12:35:30
srf2000
ужыс. зачем явные и неявные джойны смешиваем?


хехе, написала всё во фроме, без where и заработало :)

from accrual_paym lp
left join vocabulary c on lp.curr = c.id
left join users u on lp.id_user = u.id_user
left join organizaton kk on lp.subkonto = kk.id_org
left join subkonto_group sg on kk.id_group = sg.id_group
left join activity_derection ad on ad.id_direction = lp.id_direction
left join users u2 on lp.last_edit_user = u2.id_user
left join view_oplat oop on oop.id_accrual = lp.id_paym
left join firm f on f.id = lp.id_firm
left join view_summ_payed ssss on ssss.id_accrual = lp.id_paym
left join account a on lp.id_account = a.id_account
Принцессочка
Дата: 28.10.2005 12:37:54
ой... но ведь то, что у меня было в where
where
lp.id_user = u.id_user
and lp.curr = c.id
and lp.subkonto = kk.id_org
означало, что обязательно должно быть однозначное соответствие..
а left join означает отбирать данные из главной таблицы даже, если в правой таблице ничего ен найдено...
Принцессочка
Дата: 28.10.2005 12:40:33
Dayroon

почему сразу left? бывают еще full,right и inner. Откуда такая мода на
левые джойны пошла, интересно даже?
Posted via ActualForum NNTP Server 1.3


мне нужно отобрать данные из левой таблицы, даже если в правых таблицах , которые у меня были в джойне, данных нету.. аналог (+) в оракле..
собсно, это запрос, который я пытаюсь перевести с оракла на интербейс :)
а те столбцы, которыу меня шли в where обязательно должны соответсвовать..
поэтому по хорошему их надо бы в where и оставить.. но тогда ошибка возникает :(