Consulta Tipo Track
Publicado por Rojo (8 intervenciones) el 16/04/2007 19:58:01
Alguien que me de una idea de como hacer lo siguiente:
Tengo digamos 10 tablas, cada tabla da origen a un registro en otra tabla, por ejemplo
un Vale esta ligado con una Factura, una Factura con un Contra Recibo.
asi
Requisicion - Consolidacion - Cuadro_Comparativo - Cotizacion - Asignacion - Vale - Factura - Contra_Recibo
Necesito hacer una consulta que mandandole yo cualquier id de cualquier tabla, me arroje los id de las tablas relacionadas, tanto para adelante como para atras.
Por ejemplo si le mando el valor de Vale.id, que me diga todo lo que hay atras de ese Vale, recorriendo las tablas hacia atras y hacia adelante.
ESta algo fumado, pero lo tengo que hacer, y estoy seguro que aqui hay muchos expertos que me podran orientar.
Esta es la consulta que diseñe, en ocasiones funciona, otras no:
Alguien me puede dar una idea de como debo hacerlo... ?
Lo unico que necesito son los id de las otras tablas, es como situarse en un registro de x tabla y ver lo que lo genero de atras y que es lo que este id genera hacia adelante...
SELECT DISTINCT Requisicion.id AS idReq,
Consolidacion.id AS idCons,
Cuadro_Comparativo.id AS idCuadro,
Cotizacion.id AS idCot,
Asignacion.id AS idAsigna,
Detalle_Vale.id AS idDet,
Vale.id AS idVale,
Factura.id AS idFact,
Contra_Recibo.id AS idContra
FROM Requisicion
LEFT JOIN Consolidacion
ON Requisicion.id_Consolidacion = Consolidacion.id
LEFT JOIN Cuadro_Comparativo
ON Consolidacion.id = Cuadro_Comparativo.id_Consolidacion
LEFT JOIN Cotizacion
ON Cuadro_Comparativo.id = Cotizacion.id_Cuadro_Comparativo
LEFT JOIN Asignacion
ON Cotizacion.id = Asignacion.id_Cotizacion
LEFT JOIN Detalle_Vale
ON Asignacion.id = Detalle_Vale.id_Asignacion
LEFT JOIN Vale ON Detalle_Vale.id_Vale = Vale.id
LEFT JOIN Factura ON Vale.Folio_Factura = Factura.Numero
LEFT JOIN Contra_Recibo ON Factura.id = Contra_Recibo.id_Factura
WHERE Requisicion.id like 15 AND Consolidacion.id like "%"
AND Cuadro_Comparativo.id like "%"
AND Cotizacion.id like "%"
AND Asignacion.id like "%"
AND Vale.id like "%"
AND Factura.Numero like "%"
AND Contra_Recibo.id like "%"
Tengo digamos 10 tablas, cada tabla da origen a un registro en otra tabla, por ejemplo
un Vale esta ligado con una Factura, una Factura con un Contra Recibo.
asi
Requisicion - Consolidacion - Cuadro_Comparativo - Cotizacion - Asignacion - Vale - Factura - Contra_Recibo
Necesito hacer una consulta que mandandole yo cualquier id de cualquier tabla, me arroje los id de las tablas relacionadas, tanto para adelante como para atras.
Por ejemplo si le mando el valor de Vale.id, que me diga todo lo que hay atras de ese Vale, recorriendo las tablas hacia atras y hacia adelante.
ESta algo fumado, pero lo tengo que hacer, y estoy seguro que aqui hay muchos expertos que me podran orientar.
Esta es la consulta que diseñe, en ocasiones funciona, otras no:
Alguien me puede dar una idea de como debo hacerlo... ?
Lo unico que necesito son los id de las otras tablas, es como situarse en un registro de x tabla y ver lo que lo genero de atras y que es lo que este id genera hacia adelante...
SELECT DISTINCT Requisicion.id AS idReq,
Consolidacion.id AS idCons,
Cuadro_Comparativo.id AS idCuadro,
Cotizacion.id AS idCot,
Asignacion.id AS idAsigna,
Detalle_Vale.id AS idDet,
Vale.id AS idVale,
Factura.id AS idFact,
Contra_Recibo.id AS idContra
FROM Requisicion
LEFT JOIN Consolidacion
ON Requisicion.id_Consolidacion = Consolidacion.id
LEFT JOIN Cuadro_Comparativo
ON Consolidacion.id = Cuadro_Comparativo.id_Consolidacion
LEFT JOIN Cotizacion
ON Cuadro_Comparativo.id = Cotizacion.id_Cuadro_Comparativo
LEFT JOIN Asignacion
ON Cotizacion.id = Asignacion.id_Cotizacion
LEFT JOIN Detalle_Vale
ON Asignacion.id = Detalle_Vale.id_Asignacion
LEFT JOIN Vale ON Detalle_Vale.id_Vale = Vale.id
LEFT JOIN Factura ON Vale.Folio_Factura = Factura.Numero
LEFT JOIN Contra_Recibo ON Factura.id = Contra_Recibo.id_Factura
WHERE Requisicion.id like 15 AND Consolidacion.id like "%"
AND Cuadro_Comparativo.id like "%"
AND Cotizacion.id like "%"
AND Asignacion.id like "%"
AND Vale.id like "%"
AND Factura.Numero like "%"
AND Contra_Recibo.id like "%"
Valora esta pregunta


0