Consulta compleja

25/02/2005 - 17:30 por Fernando Ugarte | Informe spam
hola gente
necesito resolver el sig problema
tengo una tabla
ss_Prestador con:
idprestador
detalle


y otra
Lotes con:
idprestador
periodo

necesito una consulta que para un determinado periodo liste todos los
prestadores, especificando si existe el lote o no para ese periodo. No lo
puedo resolver en una sola consulta

probe
SELECT ss_prestador.idprestador, ss_prestador.detalle, lote.mes_prest,
lote.anio_prest
FROM ss_prestador left outer JOIN mlote ON (ss_prestador.idprestador lote.idprestador)
where lote.mes_prest = 09 and facturacion.mlote.anio_prest = 2004

pero saca solo los prestadores que si presentaron, y no los que no
presentaron
Gracias

Preguntas similare

Leer las respuestas

#1 Ivan Pascual
25/02/2005 - 17:39 | Informe spam
Prueba a ver!!

SELECT ss_prestador.idprestador, ss_prestador.detalle, lote.mes_prest,
lote.anio_prest
FROM mlote
LEFT JOIN ss_prestador ON (ss_prestador.idprestador lote.idprestador)
where lote.mes_prest = 09 and facturacion.mlote.anio_prest = 2004


Es decir quieres todos los registros de mlote y los que se corresponden con
ss_prestador .
No lo he probado pero creo que bede funcionar!!

Ivan Pascual
Respuesta Responder a este mensaje
#2 Alejandro Mesa
25/02/2005 - 17:51 | Informe spam
Fernando,

Trata cambiando el filtro como parte del join.

select
ss_prestador.idprestador,
ss_prestador.detalle,
lote.mes_prest,
lote.anio_prest
from
ss_prestador
left outer join
mlote
on (ss_prestador.idprestador = lote.idprestador)
and lote.mes_prest = 09 and mlote.anio_prest = 2004


AMB


"Fernando Ugarte" wrote:

hola gente
necesito resolver el sig problema
tengo una tabla
ss_Prestador con:
idprestador
detalle


y otra
Lotes con:
idprestador
periodo

necesito una consulta que para un determinado periodo liste todos los
prestadores, especificando si existe el lote o no para ese periodo. No lo
puedo resolver en una sola consulta

probe
SELECT ss_prestador.idprestador, ss_prestador.detalle, lote.mes_prest,
lote.anio_prest
FROM ss_prestador left outer JOIN mlote ON (ss_prestador.idprestador > lote.idprestador)
where lote.mes_prest = 09 and facturacion.mlote.anio_prest = 2004

pero saca solo los prestadores que si presentaron, y no los que no
presentaron
Gracias




Respuesta Responder a este mensaje
#3 ulises
25/02/2005 - 18:01 | Informe spam
Estas usando en forma correcta el LEFT JOIN pero ten en consideración
que cuando trae los registros que no concuerdan los campos de la tabla
de la derecha se encuentra en NULL, por consiguiente la claúsula WHERE
mlote.anio_prest= 2004 las está eliminando, reemplazala por un campode
la tabla que se encuentra a la izquierda del JOIN o en caso de no
exisitir incluye en el WHERE que debes incluir también cuando
mlote.anio_prest tenga NULL.

Saludos,
Ulises

On Fri, 25 Feb 2005 13:30:51 -0300, "Fernando Ugarte" <Nando> wrote:

hola gente
necesito resolver el sig problema
tengo una tabla
ss_Prestador con:
idprestador
detalle


y otra
Lotes con:
idprestador
periodo

necesito una consulta que para un determinado periodo liste todos los
prestadores, especificando si existe el lote o no para ese periodo. No lo
puedo resolver en una sola consulta

probe
SELECT ss_prestador.idprestador, ss_prestador.detalle, lote.mes_prest,
lote.anio_prest
FROM ss_prestador left outer JOIN mlote ON (ss_prestador.idprestador >lote.idprestador)
where lote.mes_prest = 09 and facturacion.mlote.anio_prest = 2004

pero saca solo los prestadores que si presentaron, y no los que no
presentaron
Gracias


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida