Deseo hacer lo siguiente, cuando coincidan las claves primarias y no haya filas con registros de inserción 'Y' activos. es posible?SI NO EXISTE en la instrucción Merge?
yo probamos este:
-- Merge statement
MERGE INTO table1 AS DST
USING table2 AS SRC
ON (SRC.Code = DST.Code)
--Existing records updated if data changes
WHEN MATCHED
AND IF NOT EXISTS (WHERE active='Y' FROM table1)
THEN
INSERT INTO table1 (colum)
SELECT value
+-------+-------------+--------+
| Code | description | Active |
+-------+-------------+--------+
| AB | just | |
| | something | No |
+-------+-------------+--------+
sólo cuando no hay registro activo con el mismo código, quiero insertar un registro. El nuevo registro se vería así
+-------+-------------+--------+
| Code | description | Active |
+-------+-------------+--------+
| AB | something | |
| | else | YES |
+-------+-------------+--------+
espero que hace que sea más clara
editar: No importa que no es posible, acabo de recibir este mensaje de error: Una acción de tipo 'INSERT' no es permitido en la cláusula 'CUANDO ESTÁ ENCUADRE' de una instrucción MERGE.
Esto no es cómo fusionar las obras. Considere usar un IF tradicional. – Toby
Las tablas de datos de muestra y el resultado final esperado serían útiles para entender su pregunta y para proporcionar y responder. –
Tuve algunos problemas para editar mi publicación, pero ahora hay algunos datos de ejemplo – R2D2