Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Select a tabla cuyos datos no estan en otra tabla

Estas en el tema de Select a tabla cuyos datos no estan en otra tabla en el foro de SQL Server en Foros del Web. Hola, tal como lo decia en el titulo, digamos que tengo una tabla de "CLIENTES" y otra de "FACTURA", yo quisiera darle un obsequio a ...
  #1 (permalink)  
Antiguo 25/10/2012, 17:00
 
Fecha de Ingreso: octubre-2008
Mensajes: 268
Antigüedad: 16 años, 1 mes
Puntos: 3
Select a tabla cuyos datos no estan en otra tabla

Hola, tal como lo decia en el titulo, digamos que tengo una tabla de "CLIENTES" y otra de "FACTURA", yo quisiera darle un obsequio a los clientes que compran por primera vez, pero necesito el SELECT que me los ubica, digamos q la Factura jala a los clientes por el COD_CLIENTE, como expreso este query:

SELECT
C.COD_CLIENTE as Codigo_del_Cliente,
C.NOM_CLIENTE as Nombre_del_Cliente
FROM CLIENTE C, FACTURA F
WHERE
C.COD_CLIENTE != F.COD_CLIENTE
ORDER BY C.COD_CLIENTE

La consulta me multiplica los valores, digamos q si tengo 3 facturas, como resultado me dan todos los clientes multiplicados por 3

Alguien q sepa la respuesta?

Gracias.
  #2 (permalink)  
Antiguo 25/10/2012, 17:03
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Select a tabla cuyos datos no estan en otra tabla

si son diferentes facturas para un mismo cliente te va a duplicar tus valores, lo que podrias hacer es un disctinct y solo poner el nombre del cliente no el numero de la factura o probar con un group by.

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 25/10/2012, 17:04
 
Fecha de Ingreso: octubre-2008
Mensajes: 268
Antigüedad: 16 años, 1 mes
Puntos: 3
Respuesta: Select a tabla cuyos datos no estan en otra tabla

Cita:
Iniciado por Libras Ver Mensaje
si son diferentes facturas para un mismo cliente te va a duplicar tus valores, lo que podrias hacer es un disctinct y solo poner el nombre del cliente no el numero de la factura o probar con un group by.

saludos!
Hola, ya le puse el distinct y tmb los he agrupado, lo unico q hace es no repetir la data, pero no me excluye a las personas que ya han facturado al menos una vez. Gracias!
  #4 (permalink)  
Antiguo 25/10/2012, 17:08
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Select a tabla cuyos datos no estan en otra tabla

podrias hacer algo asi

select * from tabla1 as t1
left join tabla2 as t2 on (t1.id=t2.id)
where t2.id is null

asi sacas los que no tienen ninguna factura :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 25/10/2012, 17:25
 
Fecha de Ingreso: octubre-2008
Mensajes: 268
Antigüedad: 16 años, 1 mes
Puntos: 3
Respuesta: Select a tabla cuyos datos no estan en otra tabla

Cita:
Iniciado por Libras Ver Mensaje
podrias hacer algo asi

select * from tabla1 as t1
left join tabla2 as t2 on (t1.id=t2.id)
where t2.id is null

asi sacas los que no tienen ninguna factura :)
Muy buen dato, acabo de sacarlo, pero me he complicado demasiado, tu solucion es mejor

SELECT
C.COD_CLIENTE,
C.NOM_CLIENTE,
COUNT(C.COD_CLIENTE) AS CANTIDAD
FROM
CLIENTE C, FACTURA F
WHERE
C.COD_CLIENTE != F.COD_CLIENTE
GROUP BY C.COD_CLIENTE, C.NOM_CLIENTE
HAVING COUNT(C.COD_CLIENTE) > (SELECT COUNT(*) FROM FACTURA)-1
ORDER BY C.COD_CLIENTE

Etiquetas: query, select, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:03.