none
Problema con subconsultas de 3 tablas distintas RRS feed

  • Pregunta

  • Hola espero y me ayuden de antemano gracias

    Tengo una BD con las siguientes tablas:

    Concepto {idConcepto, Peso}  [001, '5KG']

    Destino {idDestino, Paqueteria_idPaqueteria, Nombre} [001, 001, Monterrey]

    Paqueteria {idPaqueteria, Nombre} [001, DHL]

    TiempoEntrega {idTiempoEntrega, Concepto_idConcepto, Destino_idDestino, Dias, Precio}

     

    Necesito realizar una consulta en la que el usuario porporcione el Peso (de la tabla concepto) y el Nombre (de la tabla Destino) en base a esos dos datos se realiza la consulta en la tabla TiempoEntrega (que ya tiene los datos precargados) y debe de regresar:

    -------------------------------------------------

    /Nombre (Paqueteria) | Dias | Precio/

    -----------------------------------------

     

    He hecho esta consulta pero solo me retorna Dias y Precio me hace falta el nombre(tabla paqueteria)

    SELECT TE.Dias, TE.Precio FROM TiempoEntrega TE

    WHERE Concepto_idConcepto IN

    (SELECT idConcepto FROM Concepto WHERE Peso IN ('5KG'))

    AND Destino_idDestino IN

    (SELECT idDestino FROM Destino WHERE Nombre IN ('Monterrey'))

     

     


    Diego Mendoza Coah. México
    lunes, 8 de noviembre de 2010 16:05

Respuestas

  • Buenos días,

    Diego, ¿en que criterios te basas para determinar el precio?

    Otra cosita, ¿el idConcepto, vendria siendo lo mismo que el idDestino?, porque no veo ninguna relación entre la tabla Concepto y Destino, creo que debes tener algun enlace entre ellas, algun campo relacionado que te permita normalizar esto y así podrías obtener todo a partir del IdConcepto (entiendendo que es creado por cada nuevo requerimiento).

    De todas formas, prueba con este Query:

    Select P.Nombre, TE.Dias, TE.Precio
    From Concepto C
    Inner join Destino D
    On C.idConcepto = D.idDestino
    inner join Paqueteria P
    on D.Paqueteria_idPaqueteria = P.idPaqueteria
    inner join TiempoEntrega TE
    on C.idConcepto = TE.Concepto_idConcepto
    Where C.idConcepto = 1

    Una vez expliques esto y porque lo diseñaron así y podremos ayudarte.


    Willy Taveras.-

    http://itlearn.net

    lunes, 8 de noviembre de 2010 16:26
    Moderador