Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Repetir registros segun WHERE x IN (xx)

Estas en el tema de Repetir registros segun WHERE x IN (xx) en el foro de Oracle en Foros del Web. Buenas tardes gente, estoy teniendo el siguiente inconveniente: Tengo un metodo en un sistema que arma una cadena de un SELECT para pasarselo a la ...
  #1 (permalink)  
Antiguo 01/08/2013, 11:43
 
Fecha de Ingreso: febrero-2010
Mensajes: 6
Antigüedad: 14 años, 10 meses
Puntos: 0
Pregunta Repetir registros segun WHERE x IN (xx)

Buenas tardes gente, estoy teniendo el siguiente inconveniente:

Tengo un metodo en un sistema que arma una cadena de un SELECT para pasarselo a la base de datos y que lo ejecute. el problema viene en lo siguiente. Siguiendo este ejemplo:

SELECT *
FROM a, b, c
WHERE a.id = b.id
AND b.id = c.id
AND a.id IN ('1','1','2','3','4')

Necesito que la consulta devuelva lo siguiente:

A.ID ...... B.ID ........ C.ID
1 1 1
1 1 1
2 2 2
3 3 3
4 4 4

O sea que necesito que si los ID que estan dentro de la clausula IN si estan repetidos, salgan segun la cantidad en la que estan. Vale decir, un registro por cada ID que esta adentro de la sentencia IN por mas que esten repetidos.

Yo se que es algo raro pero la verdad que no encuentro la forma ....

Desde ya gracias a todos !!!

LORD_MANDRAKE
  #2 (permalink)  
Antiguo 01/08/2013, 12:40
 
Fecha de Ingreso: julio-2013
Mensajes: 36
Antigüedad: 11 años, 4 meses
Puntos: 1
Sonrisa Respuesta: Repetir registros segun WHERE x IN (xx)

No sé si te entendí bien, lo que tú necesitas es obtener los ID de cada tabla, y lograr que se colen en orden, sin importar los repetidos?

A ver si te puedo ayudar que tambien estoy aprendiendo como va esto, pero creo que tendría que ser así.

Código SQL:
Ver original
  1. SELECT a.id AS IDdeA
  2. , b.id AS IDdeB
  3. ,c.id AS IDdeC
  4. FROM a, b, c
  5. WHERE a.id = b.id
  6. AND b.id = c.id
  7. ORDER BY ID

Espero te Sirva compañero, si aún no funciona, pues vemos como lo solucionamos, ampliamos ambos nuestros conocimientos.

Saludos.
Frada
  #3 (permalink)  
Antiguo 01/08/2013, 12:53
 
Fecha de Ingreso: febrero-2010
Mensajes: 6
Antigüedad: 14 años, 10 meses
Puntos: 0
Exclamación Respuesta: Repetir registros segun WHERE x IN (xx)

Gracias por tu respuesta Frada, pero no es lo que estoy necesitando.
Es dificil de explicar, asi que voy a tratar de hacerlo nuevamente a ver si esta vez aclaro el panorama. jejeje ...

Mas alla de lo complejo que pueda ser el query, en un momento dentro de la sentencia IN del WHERE, voy a pasar una serie de codigos, estos codigos puede que esten algunos repetidos (tengo muy en claro que la funcionalidad del IN es que justamente si los codigos estan repetidos, los tome como 1 solo).

Yo necesito que los registros que me devuelve el query sean la misma cantidad que estan especificados dentro del IN.

O sea que si en la clausual del IN paso los siguientes codigos (1,1,1,2,2,3,3,3,3,4,5), la consulta normalmente me traeria los registros:
1 ...
2 ...
3 ...
4 ...
5 ...

Mientras que lo que necesito es que aparezca lo siguiente, por mas que esten repetidos:
1 ...
1 ...
1 ...
2 ...
2 ...
3 ...
3 ...
3 ...
3 ...
4 ...
5 ...

Espero haber podido ser mas claro y sigo dando de antemano las gracias a todos lo que puedan ayudarme ...
  #4 (permalink)  
Antiguo 01/08/2013, 13:19
 
Fecha de Ingreso: julio-2013
Mensajes: 36
Antigüedad: 11 años, 4 meses
Puntos: 1
Respuesta: Repetir registros segun WHERE x IN (xx)

¿Has Probado con Rownum?

Leer Acerca de ella, creo que sería lo que necesitas.

Si lo solucionas te agradeceré que puedas comentarlo.

Saludos
  #5 (permalink)  
Antiguo 01/08/2013, 13:23
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 10 meses
Puntos: 360
Respuesta: Repetir registros segun WHERE x IN (xx)

Cita:
Iniciado por lord_mandrake Ver Mensaje
Gracias por tu respuesta Frada, pero no es lo que estoy necesitando.
Es dificil de explicar, asi que voy a tratar de hacerlo nuevamente a ver si esta vez aclaro el panorama. jejeje ...

Mas alla de lo complejo que pueda ser el query, en un momento dentro de la sentencia IN del WHERE, voy a pasar una serie de codigos, estos codigos puede que esten algunos repetidos (tengo muy en claro que la funcionalidad del IN es que justamente si los codigos estan repetidos, los tome como 1 solo).

Yo necesito que los registros que me devuelve el query sean la misma cantidad que estan especificados dentro del IN.

O sea que si en la clausual del IN paso los siguientes codigos (1,1,1,2,2,3,3,3,3,4,5), la consulta normalmente me traeria los registros:
1 ...
2 ...
3 ...
4 ...
5 ...

Mientras que lo que necesito es que aparezca lo siguiente, por mas que esten repetidos:
1 ...
1 ...
1 ...
2 ...
2 ...
3 ...
3 ...
3 ...
3 ...
4 ...
5 ...

Espero haber podido ser mas claro y sigo dando de antemano las gracias a todos lo que puedan ayudarme ...
Eso no es posible.
Sería como generar registros que no existen basados en unos codigos que estableces.

Esto tendrás que lograrlo a traves de una logica de programación pero no con una consulta sql.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Etiquetas: clausula, registros, repetir
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:20.