Access - Quitar duplicados agrupando por varios campos

 
Vista:

Quitar duplicados agrupando por varios campos

Publicado por Nuria (1 intervención) el 13/07/2018 10:55:46
Hola,

Tengo esta consulta:


Select DISTINCT DDS.ddsId,DrillingConfiguration.InitialDrillingConfiguration,RepresentativeStack.LayersId
FROM DDS, RepresentativeStack,DrillingConfiguration
WHERE DDS.plant='AIC-HAM' and DDS.ddsId = RepresentativeStack.ddsId And DDS.ddsId = DrillingConfiguration.ddsId
And (( RepresentativeStack.material='Alu' AND DrillingConfiguration.InitialDrillingConfiguration='Pre-Hole aligned' AND RepresentativeStack.LayersId='1')
Or ( RepresentativeStack.material='CFRP' AND DrillingConfiguration.InitialDrillingConfiguration='Virgin' AND RepresentativeStack.LayersId='2')
Or ( RepresentativeStack.material='CFRP' AND DrillingConfiguration.InitialDrillingConfiguration='Virgin' AND RepresentativeStack.LayersId='3'))

ddsId InitialDrillingConfiguration LayersId
DDS_AIC-HAM_0002_V2_RELEASE Virgin 2
DDS_AIC-HAM_0002_V2_RELEASE Virgin 3
DDS_AIC-HAM_0004_V1_RELEASE Virgin 2
DDS_AIC-HAM_0004_V1_RELEASE Virgin 3
DDS_AIC-HAM_0006_V1_RELEASE Virgin 2
DDS_AIC-HAM_0006_V1_RELEASE Virgin 3
DDS_AIC-HAM_0007_V1_RELEASE Virgin 2
DDS_AIC-HAM_0007_V1_RELEASE Virgin 3
DDS_AIC-HAM_0008_V1_WIP Virgin 2
DDS_AIC-HAM_0009_V1_RELEASE Virgin 2
DDS_AIC-HAM_0009_V1_RELEASE Virgin 3
DDS_AIC-HAM_0011_V1_WIP Virgin 2
DDS_AIC-HAM_0012_V1_WIP Virgin 2
DDS_AIC-HAM_0012_V1_WIP Virgin 3
DDS_AIC-HAM_0014_V1_WIP Virgin 2
DDS_AIC-HAM_0016_V2_RELEASE Pre-Hole aligned 1
DDS_AIC-HAM_0017_V2_RELEASE Virgin 2
DDS_AIC-HAM_0020_V1_RELEASE Pre-Hole aligned 1
DDS_AIC-HAM_0021_V1_RELEASE Pre-Hole aligned 1
DDS_AIC-HAM_0022_V2_RELEASE Pre-Hole aligned 1
DDS_AIC-HAM_0023_V1_RELEASE Pre-Hole aligned 1
DDS_AIC-HAM_0024_V2_RELEASE Pre-Hole aligned 1
DDS_AIC-HAM_0024_V2_RELEASE Virgin 2
DDS_AIC-HAM_0024_V2_RELEASE Virgin 3

DDS_AIC-HAM_0025_V1_RELEASE Virgin 2
DDS_AIC-HAM_0027_V2_RELEASE Virgin 2
DDS_AIC-HAM_0027_V2_RELEASE Virgin 3
DDS_AIC-HAM_0028_V1_RELEASE Pre-Hole aligned 1
DDS_AIC-HAM_0028_V1_RELEASE Virgin 2
DDS_AIC-HAM_0028_V1_RELEASE Virgin 3

DDS_AIC-HAM_0030_V2_RELEASE Pre-Hole aligned 1
DDS_AIC-HAM_0030_V2_RELEASE Virgin 2
DDS_AIC-HAM_0030_V2_RELEASE Virgin 3

DDS_AIC-HAM_0031_V1_RELEASE Pre-Hole aligned 1
DDS_AIC-HAM_0031_V1_RELEASE Virgin 2


Y lo que quiero es que me saque el DDS.ddsId que tenga tres registros. Es decir, quiero que el resultado de mi consulta sea:

ddsId
DDS_AIC-HAM_0024_V1_RELEASE
DDS_AIC-HAM_0028_V1_RELEASE
DDS_AIC-HAM_0030_V2_RELEASE

Lo he intentado con el "group by DDS.ddsId having(COUNT(1) = 3)" pero tengo tengo que meter todos los agregados y no es lo que quiero. Solo quiero que me saque el DDS.ddsID


Muchas gracias de antemano.
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

Quitar duplicados agrupando por varios campos

Publicado por Anonimo (2076 intervenciones) el 13/07/2018 13:40:16
Sin entrar en detalles (los datos publicados no dejan mucho margen a especular) creo que lo mas practico seria efectuar dos consultas, una para seleccionar los que cumplan las condiciones y (sobre ella) otra que seleccione elementos únicos.

En mi opinión el método de utilizar doble consulta será mas eficaz que intentarlo en una sola (el volumen de datos será inferior ==> mayor rapidez de ejecución)
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