Vista de elementos duplicados en una tabla .

27/06/2004 - 21:20 por MhBeyle | Informe spam
Estoy parado con lo siguiente :

Tengo una tabla en la que quiero anular aquellas filas duplicadas cuyo
valor sea Nulo.

Me explico :

01 UNO Null
02 DOS Null
02 DOS XXXX
03 TRES Null
04 CUATRO Null
04 CUATRO YYYY
05 CINCO Null
06 SEIS Null

Quiero filtrar esta tabla a partir del valor YYYY y quiero que la
Vista me devuelva lo siguiente :

01 UNO Null
02 DOS Null
03 TRES Null
04 CUATRO YYYY
05 CINCO Null
06 SEIS Null

A lo mejor es muy fácil hacer esto, pero estoy bastante perdido.
¿Alguna idea?

MhBeyle __

Preguntas similare

Leer las respuestas

#6 MhBeyle
28/06/2004 - 22:30 | Informe spam
Bueno, he resuelto el asunto en parte, aunque agradecería ayuda para
poder reducir este código a algo más manejable (si es posible, claro)
...

Bien, queríamos esto :

TABLA1

01 UNO Null Null
02 DOS Null Null
02 DOS XXXX AA
03 TRES Null Null
04 CUATRO Null Null
04 CUATRO YYYY BB
05 CINCO Null Null
06 SEIS Null Null
06 SEIS YYYY AA
07 SIETE Null Null
08 OCHO Null Null
08 OCHO XXXX AA
09 NUEVE Null Null
09 NUEVE XXXX BB

Y tomando como referencia el valor 'YYYY', nos quedaría :

01 UNO Null Null
02 DOS Null Null
03 TRES Null Null
04 CUATRO YYYY BB
05 CINCO Null Null
06 SEIS YYYY AA
07 SIETE Null Null
08 OCHO Null Null
09 NUEVE Null Null

He hecho lo siguiente :

SELECT C1, C2, C3, C4
FROM TABLA1
WHERE (((C1) Not In (SELECT C1
FROM TABLA1
GROUP BY C1, C3
HAVING (((C3)='YYYY')) )) AND ((C3)<>'YYYY' Or (C3) Is Null))
UNION ALL SELECT C1, C2, C3, C4
FROM TABLA1
WHERE (((C1) In (SELECT C1 FROM TABLA1 As Tmp GROUP BY C1 HAVING
Count(*)>1 )) AND ((C3)='YYYY'))
ORDER BY C1

Es un poco engorroso , pero funciona .. ¿Alguna idea más sutil?

MhBeyle ___


(P.D. Posteo esto en un hilo nuevo, por si puede ser interesante para
alguno que no haya seguido esto desde aquí)
Ads by Google
Search Busqueda sugerida