Я имею это правило INSERT по отношению к таблице машиностроение с полями id_proto_periodo и coste_hora_aplicado, что берет стоимость одного select в другую таблицу через один, ВСТУПИЛО В БРАК, которую я хочу изменить для того, чтобы согласно стоимости, которая вводит в таблице машиностроение, была введена стоимость или другой в цене час.
insert - следующий.
INSERT INTO pro.proto_maquinaria( --TABLA DONDE SE INSERTAN LOS DATOS
id_proto_periodo, coste_hora_aplicado,
)
SELECT
new.id_proto_periodo,
CASE WHEN **t_p.id_tarifa_proto = 1** THEN ( -- VALOR DE TARIFA de proto_periodo
t.tarifa_power
)ELSE (
t.tarifa_power2
) END
FROM navh.proc_centro_trabajo__vista AS t -- TABLA DE DONDE SE COGEN LOS PRECIOS
**JOIN pro.proto_periodo__vista AS t_p ON t_p.id = new.id_proto_periodo; -- QUIERO SABER EL VALOR DE id_tarifa_proto de proto_periodo segun el valor de new.id_proto_periodo PARA QUE EL CASE INSERTE UN VALOR U OTRO.**
Они * он, где у меня есть проблема.
В proc.centro_trabajo_vista я не имею id_proto_periodo. id_proto_periodo я буду вводить это в машиностроении __ увиденная (new.id_proto_periodo). Ошибка:
JOIN pro.proto_periodo __ увиденная ЭКСПЕРТ t_p ON t_p.id = new.id_pro... ^ HINT: There is an entry for table "new", but it cannot be referenced from this part of the query.
Со мной не случается, как делание этого без trigger after insert, я пришел бы гораздо лучше, если бы смогли так. Спасибо.
В конце концов, поскольку я не смог сделать это посредством leftjoin, я это сделал посредством субконсультации оставаясь:
INSERT INTO pro.proto_maquinaria(
id_proto_periodo, coste_hora_aplicado,
)
SELECT
new.id_proto_periodo,
CASE WHEN ((SELECT id_tarifa_proto FROM pro.proto_periodo__vista WHERE id = new.id_proto_periodo)= 1) THEN (
t.tarifa_power
)ELSE (
t.tarifa_power2
) END
FROM navh.proc_centro_trabajo__vista AS t
спасибо за помощь, меня empeГ±e в делании этого с left join, не имея ссылки.