Pero como agregar una fila? estaras hablando de agregar un registro a aquellos que cumplan con la condicion no? de ser asi quedaria:
Código SQL:
Ver originalCREATE TABLE #temporal
(
id INT,
parte nvarchar(20),
marca nvarchar(20)
)
INSERT INTO #temporal VALUES (1, 'volante','ford')
INSERT INTO #temporal VALUES (1, 'asiento','ford')
INSERT INTO #temporal VALUES (1, 'puerta','ford')
INSERT INTO #temporal VALUES (1, 'llanta','ford')
INSERT INTO #temporal VALUES (1, 'cubierta','ford')
INSERT INTO #temporal VALUES (2, 'volante','chevrolet')
INSERT INTO #temporal VALUES (2, 'asiento','chevrolet')
INSERT INTO #temporal VALUES (2, 'puerta','chevrolet')
INSERT INTO #temporal VALUES (2, 'llanta','chevrolet')
INSERT INTO #temporal VALUES (3, 'volante','toyota')
INSERT INTO #temporal VALUES (3, 'asiento','toyota')
INSERT INTO #temporal VALUES (3, 'puerta','toyota')
INSERT INTO #temporal VALUES (3, 'llanta','toyota')
INSERT INTO #temporal VALUES (3, 'cubierta','toyota')
INSERT INTO #temporal VALUES (4, 'volante','peugeot')
INSERT INTO #temporal VALUES (4, 'asiento','peugeot')
INSERT INTO #temporal VALUES (4, 'puerta','peugeot')
INSERT INTO #temporal VALUES (4, 'llanta',' peugeot')
--Hacemos el insert a la tabla
INSERT INTO #temporal
--seleccionamos los datos necesarios para agregar la fila
SELECT id, 'cubierta', marca FROM(
--con el resultado de la sumatoria sabemos que registros son los que necesitamos
SELECT CASE WHEN t_llanta=1 AND t_cubierta=0 THEN 1 ELSE 0 END AS ultimo, id, marca FROM(
hacemos una sumatoria para saber cuales registros tienen llanta y no tienen cubierta
SELECT SUM(llanta) AS t_llanta, SUM(cubierta) AS t_cubierta, id, marca FROM(
--obtenemos cuales registros tienen llanta o cubierta
SELECT CASE WHEN parte='llanta' THEN 1 ELSE 0 END AS llanta,
CASE WHEN parte='cubierta' THEN 1 ELSE 0 END AS cubierta, id, marca
FROM #temporal
) AS t1 GROUP BY id, marca
) AS total
) AS ultimo WHERE ultimo=1