Join a dos tablas distintas con un resultado en una sola columna
Publicado por Luis Miguel Aza (1 intervención) el 29/10/2014 22:25:24
Buenas tardes muchas gracias por la colaboracion que me puedan brindar.
datos del problema tengo un conjunto de inner y left join para traer los datos de una consulta, el dato para unir las tablas es un campo llamado iddoc Y destinodocumentoiddoc, el problema radica en que necesito llamar dos tablas distintas esto depende del tipo del documento y mostrar un codigo de las dos tablas en una sola columna este es el query.
OT llama en IV_ItemInventario
EC llama en CO_ItemDeCompra
SELECT d1.IdDoc, d1.Prefijo +' '+d1.NumeroDocumento AS NumeroDocumento, d1.Fecha,h1.DestinoDocumentoIdDoc,d3.Fecha,d3.Prefijo+' '+ d3.NumeroDocumento as NumeroEntrada, ii7.CodigoPortafolio,i9.CodigoPortafolio
FROM GN_Documento AS d1
INNER JOIN CO_OrdenDeCompra AS d2
ON d1.IdDoc = d2.IdDoc
LEFT JOIN GN_DocumentoHistoria h1
ON d1.IdDoc = h1.IdDoc
LEFT JOIN GN_Documento as d3
ON h1.DestinoDocumentoIdDoc = d3.Iddoc
LEFT JOIN IV_ItemInventario as ii7
ON h1.DestinoDocumentoIdDoc = ii7.IdDoc
LEFT JOIN CO_ItemDeCompra as i9
ON h1.DestinoDocumentoIdDoc = i9.IdDoc
where d1.codigoestado='704' and d1.Fecha >= '2014-02-01' and d1.Fecha < '2014-05-01'
order by d1.IdDoc
y este el resultado
/iddoc//numerodocumento//fecha//DestinoDocumentoIdDoc//fecha//numerodocumento//codigo1//codigo2
586391 /OC 10306 /2014-02-01 00:00:00 /597671 /2014-02-01 00:00:00 /EC 8525 /NULL /H2F44AA#ABL
594765 / OC 10421 /2014-02-05 00:00:00 /595745 /2014-02-06 00:00:00 /EC 8483 /NULL /UC245E
594767 /OC 10422 /2014-02-05 00:00:00 /596514 /2014-02-06 00:00:00 /EC 8493 /NULL /U6E99E
594984 / OC 10423 /2014-02-05 00:00:00 /606268 /2014-03-07 00:00:00 /OT 6155 /704558-001/ NULL
594984 /OC 10423 /2014-02-05 00:00:00 /606268 /2014-03-07 00:00:00 /OT 6155 /652589-B21 /NULL
594984 /OC 10423 /2014-02-05 00:00:00 /606268 /2014-03-07 00:00:00 /OT 6155 /652611-B21/ NULL
594984 /OC 10423 /2014-02-05 00:00:00 /606268 /2014-03-07 00:00:00 /OT 6155 /718359-B21/ NULL
594984 /OC 10423 /2014-02-05 00:00:00 /606268 /2014-03-07 00:00:00 /OT 6155 /C9E49AA /NULL
y lo que quiero seria
IDDOC / NUM DOC / FECHA / IDDOC ORIGEN / FECHA / NUMERO /CODIGO1-2
586391 /OC 10306 /2014-02-01 00:00:00 /597671 /2014-02-01 00:00:00/EC 8525/ H2F44AA#ABL
594765 /OC 10421 /2014-02-05 00:00:00 /595745 /2014-02-06 00:00:00 /EC 8483 /UC245E
594767 /OC 10422 /2014-02-05 00:00:00 /596514 /2014-02-06 00:00:00 /EC 8493 /U6E99E
594984 /OC 10423 /2014-02-05 00:00:00 /606268 /2014-03-07 00:00:00 /OT 6155/704558-001
594984 /OC 10423 /2014-02-05 00:00:00 /606268 /2014-03-07 00:00:00 /OT 6155/ 652589-B21
594984 /OC 10423 /2014-02-05 00:00:00 /606268 /2014-03-07 00:00:00 /OT 6155/ 652611-B21
594984 /OC 10423 /2014-02-05 00:00:00 /606268 /2014-03-07 00:00:00 /OT 6155/ 718359-B21
594984 /OC 10423 /2014-02-05 00:00:00 /606268 /2014-03-07 00:00:00 /OT 6155/ C9E49AA
594984 /OC 10423 /2014-02-05 00:00:00 /606268 /2014-03-07 00:00:00 /OT 6155/ J9729A
gracias.
datos del problema tengo un conjunto de inner y left join para traer los datos de una consulta, el dato para unir las tablas es un campo llamado iddoc Y destinodocumentoiddoc, el problema radica en que necesito llamar dos tablas distintas esto depende del tipo del documento y mostrar un codigo de las dos tablas en una sola columna este es el query.
OT llama en IV_ItemInventario
EC llama en CO_ItemDeCompra
SELECT d1.IdDoc, d1.Prefijo +' '+d1.NumeroDocumento AS NumeroDocumento, d1.Fecha,h1.DestinoDocumentoIdDoc,d3.Fecha,d3.Prefijo+' '+ d3.NumeroDocumento as NumeroEntrada, ii7.CodigoPortafolio,i9.CodigoPortafolio
FROM GN_Documento AS d1
INNER JOIN CO_OrdenDeCompra AS d2
ON d1.IdDoc = d2.IdDoc
LEFT JOIN GN_DocumentoHistoria h1
ON d1.IdDoc = h1.IdDoc
LEFT JOIN GN_Documento as d3
ON h1.DestinoDocumentoIdDoc = d3.Iddoc
LEFT JOIN IV_ItemInventario as ii7
ON h1.DestinoDocumentoIdDoc = ii7.IdDoc
LEFT JOIN CO_ItemDeCompra as i9
ON h1.DestinoDocumentoIdDoc = i9.IdDoc
where d1.codigoestado='704' and d1.Fecha >= '2014-02-01' and d1.Fecha < '2014-05-01'
order by d1.IdDoc
y este el resultado
/iddoc//numerodocumento//fecha//DestinoDocumentoIdDoc//fecha//numerodocumento//codigo1//codigo2
586391 /OC 10306 /2014-02-01 00:00:00 /597671 /2014-02-01 00:00:00 /EC 8525 /NULL /H2F44AA#ABL
594765 / OC 10421 /2014-02-05 00:00:00 /595745 /2014-02-06 00:00:00 /EC 8483 /NULL /UC245E
594767 /OC 10422 /2014-02-05 00:00:00 /596514 /2014-02-06 00:00:00 /EC 8493 /NULL /U6E99E
594984 / OC 10423 /2014-02-05 00:00:00 /606268 /2014-03-07 00:00:00 /OT 6155 /704558-001/ NULL
594984 /OC 10423 /2014-02-05 00:00:00 /606268 /2014-03-07 00:00:00 /OT 6155 /652589-B21 /NULL
594984 /OC 10423 /2014-02-05 00:00:00 /606268 /2014-03-07 00:00:00 /OT 6155 /652611-B21/ NULL
594984 /OC 10423 /2014-02-05 00:00:00 /606268 /2014-03-07 00:00:00 /OT 6155 /718359-B21/ NULL
594984 /OC 10423 /2014-02-05 00:00:00 /606268 /2014-03-07 00:00:00 /OT 6155 /C9E49AA /NULL
y lo que quiero seria
IDDOC / NUM DOC / FECHA / IDDOC ORIGEN / FECHA / NUMERO /CODIGO1-2
586391 /OC 10306 /2014-02-01 00:00:00 /597671 /2014-02-01 00:00:00/EC 8525/ H2F44AA#ABL
594765 /OC 10421 /2014-02-05 00:00:00 /595745 /2014-02-06 00:00:00 /EC 8483 /UC245E
594767 /OC 10422 /2014-02-05 00:00:00 /596514 /2014-02-06 00:00:00 /EC 8493 /U6E99E
594984 /OC 10423 /2014-02-05 00:00:00 /606268 /2014-03-07 00:00:00 /OT 6155/704558-001
594984 /OC 10423 /2014-02-05 00:00:00 /606268 /2014-03-07 00:00:00 /OT 6155/ 652589-B21
594984 /OC 10423 /2014-02-05 00:00:00 /606268 /2014-03-07 00:00:00 /OT 6155/ 652611-B21
594984 /OC 10423 /2014-02-05 00:00:00 /606268 /2014-03-07 00:00:00 /OT 6155/ 718359-B21
594984 /OC 10423 /2014-02-05 00:00:00 /606268 /2014-03-07 00:00:00 /OT 6155/ C9E49AA
594984 /OC 10423 /2014-02-05 00:00:00 /606268 /2014-03-07 00:00:00 /OT 6155/ J9729A
gracias.
Valora esta pregunta


0