Access - Anidar JOIN

 
Vista:

Anidar JOIN

Publicado por PEPE (2 intervenciones) el 29/03/2005 19:15:35
Buenos dias a todos.
resulta, que he creado una consulta que me estrega un registro de resultados principales, cantidades totalizadas, TotalBodega1 Total bodega2, etc son 5 bodegas.

ahora para el informe impreso necesito mostrar ese registro... uno por producto, hasta aqui bien, estos totales pueden tener mas de un
detalle, cantidad en proceso, terminada, reservada; estos tambien deben aparacer en el informe, ahora si el problema.
al generar una consulta que consolide todos estos datos, me trae combinaciones que me duplican los registros, me explico
-------------------------------------------------------------------------------------
bodega3
refPROD LoteTrZF cantidadEK
R3100 ZM13 275.00
R3100 ZB13 300.00
-------------------------------------------------------------------------------------
bodega4
refPROD LoteReZF cantidadSK
R3100 ZB08 50.00
R3100 ZB08 150.00
-------------------------------------------------------------------------------------
y en el resultado que me da la consulta aparecen 4 registros en lugar de 2 asi:
-------------------------------------------------------------------------------------
refPROD LoteTrZF cantidadEK LoteReZF cantidadSK
R3100 ZB13 300.00 ZB08 50.00
R3100 ZM13 275.00 ZB08 50.00
R3100 ZB13 300.00 ZB08 150.00
R3100 ZM13 275.00 ZB08 150.00
-------------------------------------------------------------------------------------
ya he tratado usando DISTINCTROW y DISTINCT.... haciendo la consulta directa, y haciendo consultas separadas, y luego una consulta final
se me ocurre , se pueden anidar JOIN's
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Evitar combinaciones duplicadas en una consulta de resultados consolidados por bodegas

Publicado por Alejandro (4142 intervenciones) el 30/05/2023 17:15:49
Hola, Pepe.

Para evitar las combinaciones duplicadas en tu consulta, puedes utilizar subconsultas o expresiones de agregado para consolidar los datos antes de unirlos en una sola consulta.

Aquí te presento una posible solución utilizando subconsultas:

1
2
3
4
5
6
7
8
9
10
SELECT q1.refPROD, q1.LoteTrZF, q1.cantidadEK, q2.LoteReZF, q2.cantidadSK
FROM
  (SELECT refPROD, LoteTrZF, SUM(cantidadEK) AS cantidadEK
   FROM tuTabla
   GROUP BY refPROD, LoteTrZF) AS q1
INNER JOIN
  (SELECT refPROD, LoteReZF, SUM(cantidadSK) AS cantidadSK
   FROM tuTabla
   GROUP BY refPROD, LoteReZF) AS q2
ON q1.refPROD = q2.refPROD

En este ejemplo, se realizan dos subconsultas, una para obtener la suma de la cantidadEK por refPROD y LoteTrZF, y otra para obtener la suma de la cantidadSK por refPROD y LoteReZF. Luego, se realiza un INNER JOIN en base al campo refPROD para unir los resultados de ambas subconsultas.

Esto te permitirá obtener un resultado consolidado sin duplicados. Puedes ajustar las subconsultas y los campos según la estructura de tu tabla.

Espero que esta solución te sea útil. ¡Buena suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar