** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Registros Repetidos
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoRegistros Repetidos

 Responder Responder
Autor
Mensaje
Erick Gamer Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 08/Mayo/2016
Localización: Mexico
Estado: Sin conexión
Puntos: 204
Enlace directo a este mensaje Tema: Registros Repetidos
    Enviado: 04/Septiembre/2019 a las 22:45
Hola cordiales saludos a todos,

Tengo tres tablas unidas con un Inner Join, necesito hacer un conteo del campo "COD" y una sumatoria de toales del campo "VOL"

El detalle que tengo es que el campo COD tiene registros repetidos, y necesito contar el unico registro con su sumatoria de totales. Hay alguna forma de excluir los repetidos en una sola consulta?

SELECT T56W.PLANT_CLUSTER AS CLUSTER, T56W.REPORT_PLANT AS PLANT, 
Count(T56Y.COD) AS QTYCOD, 
Sum(T56W.VOL) AS VOLTOT
FROM (T56W INNER JOIN T56Y ON (T56W.MFG_PLANT_ID = T56Y.MFG_PLANT_ID) 
AND 
(T56W.PART_NBR = T56Y.PART_NBR)) INNER JOIN T57B 
ON 
(T56Y.COD = T57B.COD) 
AND 
(T56Y.MFG_PLANT_ID = T57B.MFG_PLANT_ID)
GROUP BY T56W.PLANT_CLUSTER, T56W.REPORT_PLANT;

Erick Gamer
Aprendiz de todos, maestro de nadie.
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 5226
Enlace directo a este mensaje Enviado: 04/Septiembre/2019 a las 22:51
Hola!

Utiliza los predicados DISTINCT o DISTINCTROW

Editado por mounir - 04/Septiembre/2019 a las 22:52
Un Saludo.
Arriba
Erick Gamer Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 08/Mayo/2016
Localización: Mexico
Estado: Sin conexión
Puntos: 204
Enlace directo a este mensaje Enviado: 04/Septiembre/2019 a las 23:03
Me arroja error: "Undefined function 'DISTINCT' in expression

SELECT T56W.PLANT_CLUSTER AS CLUSTER, T56W.REPORT_PLANT AS PLANT, 
DISTINCT(T56Y.COD) AS QTYCOD, 
Sum(T56W.VOL) AS VOLTOT
FROM (T56W INNER JOIN T56Y ON (T56W.MFG_PLANT_ID = T56Y.MFG_PLANT_ID) 
AND 
(T56W.PART_NBR = T56Y.PART_NBR)) INNER JOIN T57B 
ON 
(T56Y.COD = T57B.COD) 
AND 
(T56Y.MFG_PLANT_ID = T57B.MFG_PLANT_ID)
GROUP BY T56W.PLANT_CLUSTER, T56W.REPORT_PLANT;
Aprendiz de todos, maestro de nadie.
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 12022
Enlace directo a este mensaje Enviado: 04/Septiembre/2019 a las 23:06
El DISTINCT/DISTINCTROW va justo despues del SELECT y antes de los campos.

Añado: tal como se ve perfectamente en el enlace de mounir


Editado por xavi - 04/Septiembre/2019 a las 23:07
Xavi, un minyó de Terrassa

Mi web
Arriba
Erick Gamer Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 08/Mayo/2016
Localización: Mexico
Estado: Sin conexión
Puntos: 204
Enlace directo a este mensaje Enviado: 04/Septiembre/2019 a las 23:24
SELECT DISTINCT ([T56Y]![COD]) AS COD, T56W.PLANT_CLUSTER AS CLUSTER, T56W.REPORT_PLANT AS PLANT, 
Sum(T56W.VOL) AS VOLTOT
FROM (T56W INNER JOIN T56Y ON (T56W.MFG_PLANT_ID = T56Y.MFG_PLANT_ID) 
AND 
(T56W.PART_NBR = T56Y.PART_NBR)) INNER JOIN T57B 
ON 
(T56Y.COD = T57B.COD) 
AND 
(T56Y.MFG_PLANT_ID = T57B.MFG_PLANT_ID)
GROUP BY T56W.PLANT_CLUSTER, T56W.REPORT_PLANT;

Funciona muy bien, pero creo no me explique bien lo que necesito es este resultado:
Aprendiz de todos, maestro de nadie.
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 5226
Enlace directo a este mensaje Enviado: 04/Septiembre/2019 a las 23:32
Hola!

Cuando son varias tablas creo que lo correcto es utilizar DISTINCTROW, aparte, debes contar el campo "COD", Agrupar por los campos "CLUSTER y PLANTA" , sumar "VO"

Edito para añadir si no te sale con una consulta inténtalo con dos consultas, primero DISTINCTROW y luego agrupas y realizas las cuentas y sumas.

Editado por mounir - 04/Septiembre/2019 a las 23:35
Un Saludo.
Arriba
Erick Gamer Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 08/Mayo/2016
Localización: Mexico
Estado: Sin conexión
Puntos: 204
Enlace directo a este mensaje Enviado: 04/Septiembre/2019 a las 23:41
Ya entre en dudas he realizado la consulta tal como me comentas y el resultado es exatamente el mismo que la primer consulta que postee al inicio.

SELECT T56W.PLANT_CLUSTER AS CLUSTER, T56W.REPORT_PLANT AS PLANT, 
Count(T56Y.COD) AS QTYCOD, 
Sum(T56W.VOL) AS VOLTOT
FROM (T56W INNER JOIN T56Y ON (T56W.MFG_PLANT_ID = T56Y.MFG_PLANT_ID) 
AND 
(T56W.PART_NBR = T56Y.PART_NBR)) INNER JOIN T57B 
ON 
(T56Y.COD = T57B.COD) 
AND 
(T56Y.MFG_PLANT_ID = T57B.MFG_PLANT_ID)
GROUP BY T56W.PLANT_CLUSTER, T56W.REPORT_PLANT;
Aprendiz de todos, maestro de nadie.
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 5226
Enlace directo a este mensaje Enviado: 04/Septiembre/2019 a las 23:54
Hola!

No has hecho nada de lo que te comenté,

Un ejemplo sencillo

http://www.filebig.net/files/gEreBtQcC6
Un Saludo.
Arriba
Erick Gamer Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 08/Mayo/2016
Localización: Mexico
Estado: Sin conexión
Puntos: 204
Enlace directo a este mensaje Enviado: 05/Septiembre/2019 a las 00:02
LOL  Perdon Mounir postee la primer consulta

Esta es la que hice con los cambios mencionados.

SELECT DISTINCTROW ([T56Y]![COD]) AS COD, T56W.PLANT_CLUSTER AS CLUSTER, T56W.REPORT_PLANT AS PLANT, 
Sum(T56W.VOL) AS VOLTOT
FROM (T56W INNER JOIN T56Y ON (T56W.MFG_PLANT_ID = T56Y.MFG_PLANT_ID) 
AND 
(T56W.PART_NBR = T56Y.PART_NBR)) INNER JOIN T57B 
ON 
(T56Y.COD = T57B.COD) 
AND 
(T56Y.MFG_PLANT_ID = T57B.MFG_PLANT_ID)
GROUP BY T56W.PLANT_CLUSTER, T56W.REPORT_PLANT;
Aprendiz de todos, maestro de nadie.
Arriba
guarracuco Ver desplegable
Moderador
Moderador
Avatar

Unido: 24/Abril/2004
Localización: EEUU
Estado: Sin conexión
Puntos: 3048
Enlace directo a este mensaje Enviado: 05/Septiembre/2019 a las 13:16
En la imagen que colocas, los códigos sin distintos. Por eso no agrupa. Deberías colocar aquí una vista de las 3 tablas en diseño y otra con datos para poder ayudarte.
https://tucondominioaldia.net
Arriba
guarracuco Ver desplegable
Moderador
Moderador
Avatar

Unido: 24/Abril/2004
Localización: EEUU
Estado: Sin conexión
Puntos: 3048
Enlace directo a este mensaje Enviado: 07/Septiembre/2019 a las 15:13
Erick, pudiste resolver la consulta?

Agrego:
Con la informacion suministrada, poco o nada podemos ayudar. Debes suministrar vista con datos de las 3 tablas.


Editado por guarracuco - 07/Septiembre/2019 a las 15:16
https://tucondominioaldia.net
Arriba
Erick Gamer Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 08/Mayo/2016
Localización: Mexico
Estado: Sin conexión
Puntos: 204
Enlace directo a este mensaje Enviado: 17/Septiembre/2019 a las 17:39
Perdon por no contestar antes,

La solución correcta fue usar SELECT DISTINCTROW, la duda que me habia nacido era porque la primer consulta posteada y la recomendada por mounir me arrojaban el mismo resultado.
Error no estaba agrupando un campo por ello no miraba la diferencia, corregi y solucionado.

Saludos, pueden cerrar el hilo Muchas Gracias!!!!!Smile

Erick Gamer
Aprendiz de todos, maestro de nadie.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable