Как правильно следует делать join ХП в
запросе?

Hапример, у меня есть таблица
работников Worker, первичный ключ - id_worker.
Есть ХП CalculatePayment, которая на входе
получает id_worker, а на выход
выдает рассчитанную для этого
работника з\п payment. Как написать запрос,

который выведет всех работников и их
з\п?

Хочется написать примерно так, как
было бы с обычной таблицей:

select w.id_worker, cwp.payment
from Worker w
  join calculatepayment(w.id_worker) cwp on (cwp.id_worker=w.id_worker)

Ругается "column unknown cwp.id_worker" при
подготовке запроса.
Если заменить выражение в on на "on (1=1)",
то при выполнении в IbExpert
ругается "The cursor identified in the update or delete
statement is not
positioned on a row. no current record for fetch operation". Если
я правильно
понял, сервер не знает, что передать в
параметр процедуры вместо w.id_worker,
т.к. если туда поставить константу, то
все работает.

Я знаю, что можно использовать
подзапрос, примерно так:

select w.id_worker,
  (select payment from calculatepayment(w.id_worker))
...

для ХП с одним полем это решит
проблему. Hо как переписать запрос,
если в ХП
выходных полей много (не один десяток),
и не хочется ради каждого поля
отдельно
вызывать ХП?

Благодарю за внимание,

Ответить