Principales respuestas
inner join de varias tablas

Pregunta
-
Amigos buenas tardes estoy realizando una combinacion de tablas para que me muestre codigo , descripcion, existencia , lote, fecha de vencimiento y precio (este precio se define segun el convenio), dependiendo el codigoProducto, la bodega y el covenio estos tres serian los parametros q me arrojan la informacion , el query que he realizado funciona bien , pero aca me hace falta consumir informacion de la tabla sapar que esta esta ligada con el codigo del producto pero resulta que este codigo en la tabla sapar es un compuesto y en la columna item de esa misma tabla sapar estan los codigo de las partes que componen ese compuesto , lo que deseo realizar es que al momento de ingresar un codigo ya sea solo una parte o un compuesto me arroje el resultado , para el codigo compuesto realice otro query y tambien funcioana bien pero quiero saber si hay alguna manera de unirlos , espero me haya hecho entender
este es el query que me trae solo partes
select top(1) sp.CodProd,
sp.Descrip,
sx.Existen,
sdp.Descrip AS Bodega,
sl.NroLote,
sl.Cantidad,
sl.FechaV,
SAT.Monto
from SAPROD as sp
left JOIN SAEXIS as sx
on sp.CodProd = sx.CodProd
left JOIN SALOTE as sl
on sp.CodProd = sl.CodProd
left JOIN SADEPO as sdp
on sx.CodUbic = sdp.CodUbic
left JOIN SAITCV AS SAT
ON sp.CodProd = sat.CodItem
left join SACLIE as SC
ON SAT.CodConv = SC.CodConv
where sp.CodProd='11-05224' AND SAT.CodConv = 'D002'and sdp.CodUbic='01'este es el resultado de ese query
este es el query de compuestos
SELECT spart.CodAlte ,sp.Descrip,sx.Existen,sdp.CodUbic,sdp.Descrip,sl.NroLote,sl.Cantidad,sl.FechaV,stcv.Monto FROM SAPART as spart
left join SAPROD as sp
on spart.CodAlte = sp.CodProd
left join SAEXIS as sx
on spart.CodAlte = sx.CodProd
left join SALOTE as sl
on spart.CodAlte = sl.CodProd
left join SADEPO as sdp
on sx.CodUbic = sdp.CodUbic
left join saitcv as stcv
on sp.CodProd = stcv.CodItem
left join SACLIE as sc
on stcv.CodConv = sc.CodConv
WHERE spart.CodProd ='C3.0-4.0N1'este es el resultado de ese compuesto
reitero nuevamente como prodria unir estas dos consulta para que arroje resultados dependiendo el codigo.
Daniel
Respuestas
-
Hola Dannycv012:
A priori viendo los resultados, puedes utilizar union
select top (1) [sp].[CodProd] , [sp].[Descrip] , [sx].[Existen] , [sdp].[Descrip] AS [Bodega] , [sl].[NroLote] , [sl].[Cantidad] , [sl].[FechaV] , [SAT].[Monto] from SAPROD as sp left JOIN SAEXIS as sx on sp.CodProd = sx.CodProd left JOIN SALOTE as sl on sp.CodProd = sl.CodProd left JOIN SADEPO as sdp on sx.CodUbic = sdp.CodUbic left JOIN SAITCV AS SAT ON sp.CodProd = sat.CodItem left join SACLIE as SC ON SAT.CodConv = SC.CodConv where [sp].[CodProd] = '11-05224' AND [SAT].[CodConv] = 'D002' and [sdp].[CodUbic] = '01' UNION SELECT [spart].[CodAlte] , [sp].[Descrip] , [sx].[Existen] , [sdp].[CodUbic] , [sdp].[Descrip] , [sl].[NroLote] , [sl].[Cantidad] , [sl].[FechaV] , [stcv].[Monto] FROM SAPART as spart left join SAPROD as sp on spart.CodAlte = sp.CodProd left join SAEXIS as sx on spart.CodAlte = sx.CodProd left join SALOTE as sl on spart.CodAlte = sl.CodProd left join SADEPO as sdp on sx.CodUbic = sdp.CodUbic left join saitcv as stcv on sp.CodProd = stcv.CodItem left join SACLIE as sc on stcv.CodConv = sc.CodConv WHERE [spart].[CodProd] = 'C3.0-4.0N1';
Union elimina los duplicados.
- Marcado como respuesta Dannycv012 martes, 25 de febrero de 2020 13:49
Todas las respuestas
-
Hola Dannycv012:
A priori viendo los resultados, puedes utilizar union
select top (1) [sp].[CodProd] , [sp].[Descrip] , [sx].[Existen] , [sdp].[Descrip] AS [Bodega] , [sl].[NroLote] , [sl].[Cantidad] , [sl].[FechaV] , [SAT].[Monto] from SAPROD as sp left JOIN SAEXIS as sx on sp.CodProd = sx.CodProd left JOIN SALOTE as sl on sp.CodProd = sl.CodProd left JOIN SADEPO as sdp on sx.CodUbic = sdp.CodUbic left JOIN SAITCV AS SAT ON sp.CodProd = sat.CodItem left join SACLIE as SC ON SAT.CodConv = SC.CodConv where [sp].[CodProd] = '11-05224' AND [SAT].[CodConv] = 'D002' and [sdp].[CodUbic] = '01' UNION SELECT [spart].[CodAlte] , [sp].[Descrip] , [sx].[Existen] , [sdp].[CodUbic] , [sdp].[Descrip] , [sl].[NroLote] , [sl].[Cantidad] , [sl].[FechaV] , [stcv].[Monto] FROM SAPART as spart left join SAPROD as sp on spart.CodAlte = sp.CodProd left join SAEXIS as sx on spart.CodAlte = sx.CodProd left join SALOTE as sl on spart.CodAlte = sl.CodProd left join SADEPO as sdp on sx.CodUbic = sdp.CodUbic left join saitcv as stcv on sp.CodProd = stcv.CodItem left join SACLIE as sc on stcv.CodConv = sc.CodConv WHERE [spart].[CodProd] = 'C3.0-4.0N1';
Union elimina los duplicados.
- Marcado como respuesta Dannycv012 martes, 25 de febrero de 2020 13:49
-
-