Consulta sin duplicados
Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=86746
Fecha de impresión: 27/Marzo/2026 a las 04:08
Tema: Consulta sin duplicados
Publicado por: Erick Gamer
Asunto: Consulta sin duplicados
Fecha de publicación: 03/Agosto/2023 a las 01:05
|
Hola a todos, esperando.
Tengo una consulta de union como la siguiente:
SELECT * FROM (select * from Data_Side1 UNION select * from Data_Side2 UNION select * from Data_Side3) WHERE ((([%$##@_Alias].[PN]) Not Like "C*"));
|
Donde mis datos que obtengo son como los siguientes:
Lo que busco es no obtener datos duplicados en la columna PN.
Puedo diseñar una tabla para que no me admite duplicados en esa columna, pero tengo la inquietud si se puede realizar desde la propia consulta.
NOTA: Hay mas columnas en mi consulta, estos son solo un ejemplo.
Saludos
Erick Gamer.
------------- Aprendiz de todos, maestro de nadie.
|
Respuestas:
Publicado por: xavi
Fecha de publicación: 03/Agosto/2023 a las 11:47
|
Hola,
Por las horas que lleva el mensaje y visto que nadie ha respondido, supongo que todos estamos igual: no nos queda claro que es lo que pretendes conseguir.
Intenta volver a explicarlo.
Un saludo
------------- Xavi, un minyó de Terrassa
http://www.llodax.com" rel="nofollow - Mi web
|
Publicado por: Erick Gamer
Fecha de publicación: 03/Agosto/2023 a las 16:48
Una disculpa Xavi, claramente vi que se habia subido la imagen en la pregunta publicada con un ejemplo de lo que busco. Este es el resultado de mi consulta union.
| Actual |
| PN |
Identificador |
Size |
MinCH |
NomCC |
MaxCC |
| REF25706 |
A |
4 |
2.25 |
2.3 |
2.35 |
| RAM46789 |
B |
0.5 |
1.05 |
1.1 |
1.15 |
| RAM46789 |
C |
0.4 |
1.02 |
1.05 |
1.08 |
| ERF46790 |
A |
1 |
1.35 |
1.4 |
1.45 |
| ERF46791 |
A |
1.5 |
1.4 |
1.45 |
1.5 |
| LDS29373 |
A |
0.4 |
.82 |
0.85 |
.88 |
| LDS29373 |
A |
0.5 |
.9 |
0.95 |
1 |
| REF91811 |
X |
0.5 |
1.1 |
1.15 |
1.2 |
| REF91812 |
A |
0.8 |
1.25 |
1.3 |
1.35 |
| CLS88505 |
B |
0.4 |
.92 |
0.95 |
.98 |
| CLS88505 |
B |
0.5 |
.9 |
0.95 |
1 |
El resultado que busco es de la columna PN no obtener datos repetidos.
| Resultado |
| PN |
Identificador |
PN Sec |
Size |
MinCH |
NomCC |
MaxCC |
| REF25706 |
A |
|
4 |
2.25 |
2.3 |
2.35 |
| RAM46789 |
B |
|
0.5 |
1.05 |
1.1 |
1.15 |
| ERF46790 |
A |
|
1 |
1.35 |
1.4 |
1.45 |
| ERF46791 |
A |
|
1.5 |
1.4 |
1.45 |
1.5 |
| LDS29373 |
A |
|
0.5 |
.9 |
0.95 |
1 |
| REF91811 |
X |
|
0.5 |
1.1 |
1.15 |
1.2 |
| REF91812 |
A |
|
0.75 |
1.25 |
1.3 |
1.35 |
| CLS88505 |
B |
|
0.5 |
.9 |
0.95 |
1 |
Para esto puedo crear una tabla como ID la columna PN y que no acepte duplicados, pero quisiera saber si es posible hacerlo con una consulta. Esta es la consulta que tengo actualmente: [code] SELECT * FROM (select * from Data_Side1 UNION select * from Data_Side2 UNION select * from Data_Side3) WHERE ((([%$##@_Alias].[PN]) Not Like "C*")) [endcode]
Espero ahora este mas claro lo que busco.
Un saludo.
Erick Gamer.
------------- Aprendiz de todos, maestro de nadie.
|
Publicado por: emiliove
Fecha de publicación: 03/Agosto/2023 a las 17:28
|
Y no importa que MinCH, NomCC y MaxCC sean diferentes en los duplicados.
Saludos.
|
Publicado por: Erick Gamer
Fecha de publicación: 03/Agosto/2023 a las 17:30
|
No, no importa solo que el dato (row) a mostrar sean los correspondientes a la fila.
Intente usar First, pero igual me devuelve todos los records.
------------- Aprendiz de todos, maestro de nadie.
|
Publicado por: emiliove
Fecha de publicación: 03/Agosto/2023 a las 20:49
Y usar algo como:SELECT DISTINCT * FROM (select * from Data_Side1 UNION select * from Data_Side2 UNION select * from Data_Side3) WHERE ((([%$##@_Alias].[PN]) Not Like "C*")) [endcode]
o algo como: SELECT DISTINCTROW * FROM (select * from Data_Side1 UNION select * from Data_Side2 UNION select * from Data_Side3) WHERE ((([%$##@_Alias].[PN]) Not Like "C*")) [endcode]
Saludos.
|
Publicado por: pitxiku
Fecha de publicación: 03/Agosto/2023 a las 22:13
|
Como no tengo todas tus tablas y consultas, he tomado los registros que has mostrado y creado una tabla:
TablaErick
| PN |
Identificador |
Size |
MinCH |
NomCC |
MaxCC |
| REF25706 |
A |
4 |
2.25 |
23 |
2.35 |
| RAM46789 |
B |
5 |
1.05 |
11 |
1.15 |
| RAM46789 |
C |
4 |
1.02 |
105 |
1.08 |
| ERF46790 |
A |
1 |
1.35 |
14 |
1.45 |
| ERF46791 |
A |
15 |
1.4 |
145 |
1.5 |
| LDS29373 |
A |
4 |
.82 |
85 |
.88 |
| LDS29373 |
A |
5 |
.9 |
95 |
1 |
| REF91811 |
X |
5 |
1.1 |
115 |
1.2 |
| REF91812 |
A |
8 |
1.25 |
13 |
1.35 |
| CLS88505 |
B |
4 |
.92 |
95 |
.98 |
| CLS88505 |
B |
5 |
.9 |
95 |
1 |
Sobre esta tabla, he creado una consulta de totales, agrupando por PN y devolviendo el primer dato de cada campo:
SELECT TablaErick.PN, First(TablaErick.Identificador) AS PrimeroDeIdentificador, First(TablaErick.Size) AS PrimeroDeSize, First(TablaErick.MinCH) AS PrimeroDeMinCH, First(TablaErick.NomCC) AS PrimeroDeNomCC, First(TablaErick.MaxCC) AS PrimeroDeMaxCC FROM TablaErick GROUP BY TablaErick.PN;
El resultado es este:
Consulta1
| PN |
PrimeroDeIdentificador |
PrimeroDeSize |
PrimeroDeMinCH |
PrimeroDeNomCC |
PrimeroDeMaxCC |
| CLS88505 |
B |
4 |
.92 |
95 |
.98 |
| ERF46790 |
A |
1 |
1.35 |
14 |
1.45 |
| ERF46791 |
A |
15 |
1.4 |
145 |
1.5 |
| LDS29373 |
A |
4 |
.82 |
85 |
.88 |
| RAM46789 |
B |
5 |
1.05 |
11 |
1.15 |
| REF25706 |
A |
4 |
2.25 |
23 |
2.35 |
| REF91811 |
X |
5 |
1.1 |
115 |
1.2 |
| REF91812 |
A |
8 |
1.25 |
13 |
1.35 |
|
Publicado por: Erick Gamer
Fecha de publicación: 04/Agosto/2023 a las 00:36
emiliove escribió:
Y usar algo como:SELECT DISTINCT * FROM (select * from Data_Side1 UNION select * from Data_Side2 UNION select * from Data_Side3) WHERE ((([%$##@_Alias].[PN]) Not Like "C*")) [endcode]
o algo como: SELECT DISTINCTROW * FROM (select * from Data_Side1 UNION select * from Data_Side2 UNION select * from Data_Side3) WHERE ((([%$##@_Alias].[PN]) Not Like "C*")) [endcode]
Saludos. |
Esta consulta la habia intentado pero me devuelvia registros unicos por fila, es decir en la columna PN me devolvia registros duplicados porque en las demas columnas los valores eran diferentes.
------------- Aprendiz de todos, maestro de nadie.
|
Publicado por: Erick Gamer
Fecha de publicación: 04/Agosto/2023 a las 00:40
pitxiku escribió:
Como no tengo todas tus tablas y consultas, he tomado los registros que has mostrado y creado una tabla:
TablaErick
| PN |
Identificador |
Size |
MinCH |
NomCC |
MaxCC |
| REF25706 |
A |
4 |
2.25 |
23 |
2.35 |
| RAM46789 |
B |
5 |
1.05 |
11 |
1.15 |
| RAM46789 |
C |
4 |
1.02 |
105 |
1.08 |
| ERF46790 |
A |
1 |
1.35 |
14 |
1.45 |
| ERF46791 |
A |
15 |
1.4 |
145 |
1.5 |
| LDS29373 |
A |
4 |
.82 |
85 |
.88 |
| LDS29373 |
A |
5 |
.9 |
95 |
1 |
| REF91811 |
X |
5 |
1.1 |
115 |
1.2 |
| REF91812 |
A |
8 |
1.25 |
13 |
1.35 |
| CLS88505 |
B |
4 |
.92 |
95 |
.98 |
| CLS88505 |
B |
5 |
.9 |
95 |
1 |
Sobre esta tabla, he creado una consulta de totales, agrupando por PN y devolviendo el primer dato de cada campo:
SELECT TablaErick.PN, First(TablaErick.Identificador) AS PrimeroDeIdentificador, First(TablaErick.Size) AS PrimeroDeSize, First(TablaErick.MinCH) AS PrimeroDeMinCH, First(TablaErick.NomCC) AS PrimeroDeNomCC, First(TablaErick.MaxCC) AS PrimeroDeMaxCC FROM TablaErick GROUP BY TablaErick.PN;
El resultado es este:
Consulta1
| PN |
PrimeroDeIdentificador |
PrimeroDeSize |
PrimeroDeMinCH |
PrimeroDeNomCC |
PrimeroDeMaxCC |
| CLS88505 |
B |
4 |
.92 |
95 |
.98 |
| ERF46790 |
A |
1 |
1.35 |
14 |
1.45 |
| ERF46791 |
A |
15 |
1.4 |
145 |
1.5 |
| LDS29373 |
A |
4 |
.82 |
85 |
.88 |
| RAM46789 |
B |
5 |
1.05 |
11 |
1.15 |
| REF25706 |
A |
4 |
2.25 |
23 |
2.35 |
| REF91811 |
X |
5 |
1.1 |
115 |
1.2 |
| REF91812 |
A |
8 |
1.25 |
13 |
1.35 |
|
Gracias pitxiku, esto es exactamente lo que buscaba, pero lo estaba intentando en la misma consulta que mostre al inicio y no me funcionaba ya que estaba haciendo el First a el PN y no a los demas registros.
Estaba haciendo algo como esto:
SELECT * FROM FIRST PN (SELECT * FROM..... GROUP BY)
|
Esta tema esta solucionado.
Muchas gracias.
Erick Gamer.
------------- Aprendiz de todos, maestro de nadie.
|
|