Ver Mensaje Individual
  #7 (permalink)  
Antiguo 14/07/2009, 16:51
Avatar de BlueSkull
BlueSkull
 
Fecha de Ingreso: noviembre-2008
Ubicación: Chile
Mensajes: 504
Antigüedad: 15 años, 6 meses
Puntos: 4
Respuesta: Como creo una consulta que borre clientes sin ordenes

Estimados, gracias por la ayuda pero tengo un problemita, al final mi consulta para probra que me traiga los clientes que no tiene obras y clientes que tienen obras pero que no tengan ordenes me funciona bien y es la siguiente:

Código:
SELECT CLIENTE.RUT 
FROM CLIENTE
WHERE CLIENTE.RUT NOT IN(
SELECT DISTINCT OBRA.RUT 
	FROM CLIENTE INNER JOIN OBRA 
		ON CLIENTE.RUT = OBRA.RUT INNER JOIN ORDEN 
		ON OBRA.IDOBRA = ORDEN.IDOBRA)
Pero la idea es poder borrar los clientes que no tengan obras y clientes que tengan obras pero que no tengan ordenes y la consulta me quedo asi:

Código:
DELETE
FROM CLIENTE
WHERE CLIENTE.RUT NOT IN(
SELECT DISTINCT OBRA.RUT 
	FROM CLIENTE INNER JOIN OBRA 
		ON CLIENTE.RUT = OBRA.RUT INNER JOIN ORDEN 
		ON OBRA.IDOBRA = ORDEN.IDOBRA)
La cual me funciona y borra los clientes de la tabla cliente que no tienen obras en la tabla obra, pero no me funciona para borrar los clientes que tienen obras sin ordenes. Como puedo completar esta consulta para que aparte de borrar el cliente me borre las obras que no tienen ordenes.

Gracias, adios.

PD1: Las tablas.
PD2: flaviovich no puedo hacer funcionar el EXISTS o NOT EXISTS en la consulta.
Código:
SELECT CLIENTE.RUT 
FROM CLIENTE
WHERE CLIENTE.RUT NOT EXISTS(
SELECT DISTINCT OBRA.RUT 
	FROM CLIENTE INNER JOIN OBRA 
		ON CLIENTE.RUT = OBRA.RUT INNER JOIN ORDEN 
		ON OBRA.IDOBRA = ORDEN.IDOBRA)
__________________
"Incluso las torres más altas empiezan en el suelo."
"Sé Ágil..."
StreamWriter