Hola listeros, Tengo que resolver lo siguiente y no sé cómo:
Tengo una tabla A con datos que se copian tal cual a la tabla B De forma que la tabla B tiene quedar igual que la A, o sea, lo que sobra se borra, lo que falta se inserta y lo que está se actualiza. Intenté resolverlo con CASE pero no puedo hacer más que SELECT dentro de cada opción del case con IF tampoco puede resolverlo La idea es resolverlo en una sóla consulta determinando qué actualizar, insertar, borrar con joins, eso funciona, según el valor de un campo resultado sé qué tengo que hacer, el tema es que no sé cómo hacer que haga una u otra cosa dentro de la misma consulta, intenté con CTE pero no le encontré la vuelta, pego algo que hice a ver si me pueden dar una idea, o ver por dónde tengo que encararlo, gracias de antemano with t (clave1origen, clave1destino) as ( select o.clave1 clave1origen, d.clave1 clave1destino from origen o full outer join destino d on o.clave1 = d.clave1 and o.clave2 = d.clave2 ) select case when t.clave1origen is null then --insertar insert into destino (clave1, valor) value (t.clave1, t.valor) when t.clave1origen is not null and t.clave1destino is not null then 'actualiza' when t.clave1origen is not null and t.clave1destino is null then 'insertar' end from ( select o.clave1 clave1origen, d.clave1 clave1destino, o.valor valor from origen o full outer join destino d on o.clave1 = d.clave1 and o.clave2 = d.clave2) t -- Leonardo Micheloni. http://leomicheloni.blogspot.com/