SQL - Registros repetidos entre dos columnas

   
Vista:

Registros repetidos entre dos columnas

Publicado por Luis (3 intervenciones) el 07/04/2017 04:15:29
Buenas noches (Una disculpa por el título del tema, la verdad batallé jajaja),

Los molesto con una duda, con relación a SQL, les explico un poco y espero puedan apoyarme:

Tengo una tabla con "n" columnas pero en 2 de ellas tengo como datos números, éstos pueden llegar a repetirse en las dos (por ejemplo el No. 5 se puede repetir tres veces en dos en una columna y una en la otra).

Al realizar la consulta de cualquier número, me manda a una "Pantalla A" en donde muestra todos registros relacionados al número que ingresé con los detalles de las "n" columnas. Aquí tengo la opción de modificar cualquiera de los registros que aparecen en pantalla y visualizarlos en una "Pantalla B". (Hasta aquí todo correcto, funciona perfecto.)

Mi duda viene con lo siguiente:

Si el número que consulto cuenta solamente con UN registro quiero que me mande directamente a la "Pantalla B" (y no a la "Pantalla A" porque es innecesario) y que en caso contrario, si el número tiene dos o más registros en cualquiera de las dos columnas me mande como lo hace actualmente, a la "Pantalla A".

Actualmente estoy intentando con un Query en donde trato de utilizar GROUP BY, HAVING, o algún COUNT...>1, pero muy probablemente me estoy confundiendo con algo.

Agradezco de antemano su tiempo y apoyo.

Saludos!
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

Registros repetidos entre dos columnas

Publicado por leonardo_josue (1139 intervenciones) el 07/04/2017 16:48:48
Hola Luis;

Estás mezclando cuestiones de programación con cuestiones de BD's lo cual puede resultar en un problema, ya que en el foro sólo nos enfocamos a cuestiones de SQL, sin embargo, te puedo hacer algunos comentarios que creo que pueden servir. En primer lugar, para determinar si un número está repetido, dado que nos dices que tienes tu información en dos columnas, lo primero que tendrías que hacer es la unión de esas dos columnas para hacer un COUNT, es decir, algo más o menos así:

1
2
3
4
5
6
7
8
9
SELECT campo, count(campo) total
FROM
(
  SELECT campo1 campo FROM tu_tabla
  UNION ALL
  SELECT campo2 campo FROM tu_tabla
)
WHERE campo = tu_numero_a_buscar
GROUP BY campo

Esta consulta entonces te regresará un solo registro con dos valores: el número que estás buscando y la cantidad de veces que se repite en ambas columnas.

A partir de esta consulta entonces tú puedes decidir si presentas la pantalla A o la pantalla B.

Si el total es > 1 entonces muestras la pantalla A, si el total es = 1 entonces muestras la pantalla B, y si el resultado es cero pues igual y no muestras ninguna pantalla y vuelves a pedir un número como parámetro.

haz la prueba y nos comentas.

Saludos
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
Revisar política de publicidad