Pregunta

Tengo una base de datos de acceso de MS y necesitaría crear una consulta SQL que me permita seleccionar todas las entradas no distintas en una columna y al mismo tiempo mantener todos los valores.

En este caso, más que nunca, un ejemplo vale más que miles de palabras:

Tabla:

A B C
1 x q
2 y w
3 y e
4 z r
5 z t
6 z y

Magia SQL

Resultado:

B C
y w
y e
z r
z t
z y

Básicamente elimina todos los valores únicos de la columna B pero mantiene las múltiples filas de datos guardados. Puedo '' agrupar por b '' y luego '' contar > 1 '' para obtener lo que no es distinto, pero el resultado solo mostrará una fila de B, no las 2 o más que necesito.

¿Alguna ayuda?

Gracias.

¿Fue útil?

Solución

Select B, C
From Table
Where B In
    (Select B From Table
     Group By B
     Having Count(*) > 1)

Otros consejos

Otra forma de devolver los resultados que desea sería esta:

select *
from
    my_table
where 
    B in 
    (select B from my_table group by B having count(*) > 1)
select 
  * 
from 
  my_table t1, 
  my_table t2
where 
  t1.B = t2.B
and
  t1.C != t2.C

-- apparently you need to use <> instead of != in Access
-- Thanks, Dave!

¿Algo así?

unir los valores únicos de B que determinó con group by by count > 1 de vuelta a la tabla original para recuperar los valores de C de la tabla.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top