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

Problema con Vistas del SQL Server

Estas en el tema de Problema con Vistas del SQL Server en el foro de SQL Server en Foros del Web. He creado una Vista con 3 tablas: Agencias, Campañas y Anunciantes. La cuestión es que he creado las relaciones correctamente pero si alguna campaña no ...
  #1 (permalink)  
Antiguo 28/03/2006, 04:20
Avatar de codify  
Fecha de Ingreso: febrero-2002
Ubicación: Barcelona (España)
Mensajes: 183
Antigüedad: 22 años, 9 meses
Puntos: 1
Problema con Vistas del SQL Server

He creado una Vista con 3 tablas: Agencias, Campañas y Anunciantes.

La cuestión es que he creado las relaciones correctamente pero si alguna campaña no tiene asignado ningún anunciante, este registro no aparece.

¿Como debería hacerlo para que me aparecieran todos los registros aunque les faltara algún campo?
__________________
====================
Codify
====================
  #2 (permalink)  
Antiguo 28/03/2006, 08:11
Avatar de .seb  
Fecha de Ingreso: marzo-2006
Ubicación: Uruguay
Mensajes: 493
Antigüedad: 18 años, 8 meses
Puntos: 1
Esto lo logras con el comando =* al hacer el join.
Si quieres escribe la consulta y te digo donde debe ir el =*
__________________
saludos
seba
http://sgomez.blogspot.com
  #3 (permalink)  
Antiguo 28/03/2006, 08:36
Avatar de codify  
Fecha de Ingreso: febrero-2002
Ubicación: Barcelona (España)
Mensajes: 183
Antigüedad: 22 años, 9 meses
Puntos: 1
No te puedo copiar el código porque estoy trabajando contra un Terminal Server (como si fuera un VNC) y es demasiado largo para copiarlo a mano...lo siento...
Si me pudieras poner un ejemplo simple...
__________________
====================
Codify
====================
  #4 (permalink)  
Antiguo 28/03/2006, 08:43
Avatar de .seb  
Fecha de Ingreso: marzo-2006
Ubicación: Uruguay
Mensajes: 493
Antigüedad: 18 años, 8 meses
Puntos: 1
A ver, por ejemplo:
Supon que tienes una tabla Clientes y otra Facturas donde esta última tiene un campo IDCliente que se asocia obviamente con la tabla en mención.
Si tu hicieras la siguiente consulta:

SELECT *
FROM CLIENTES C, FACTURAS F
WHERE F.IDCLIENTE = C.IDCLIENTE

Esto te devuelve solo los clientes que tienen factura, que es lo que te está pasando a ti.
Para solucionar esto si mal no recuerdo el asterisco debe ir del lado del C.IDCLIENTE, por lo que quedaría:

SELECT *
FROM CLIENTES C, FACTURAS F
WHERE F.IDCLIENTE =* C.IDCLIENTE

Y esto te devolvería todos los clientes independientemente de que tenga o no facturas. No estoy seguro sobre la ubicación exacta, pero juega con eso hasta que encuentres el comportamiento correcto. No tengo SQL server acá conmigo como para probarlo.
__________________
saludos
seba
http://sgomez.blogspot.com
  #5 (permalink)  
Antiguo 28/03/2006, 08:53
Avatar de codify  
Fecha de Ingreso: febrero-2002
Ubicación: Barcelona (España)
Mensajes: 183
Antigüedad: 22 años, 9 meses
Puntos: 1
__________________
====================
Codify
====================
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 22:22.