Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/03/2015, 20:16
jmendezg
 
Fecha de Ingreso: febrero-2015
Mensajes: 89
Antigüedad: 9 años, 3 meses
Puntos: 1
Consulta de concatenacion de registros.

Buenas noches,

tengo un problemilla desde hace 1 día.

Por favor orientenme ... lo que deseo hacer es anidar registros continuos... dejo un ejemplo.


Código SQL:
Ver original
  1. CREATE TABLE tabla_logfile
  2. (
  3. GROUP# INT,
  4. STATUS VARCHAR (10),
  5. TYPE VARCHAR (10),
  6. MEMBER VARCHAR (100)
  7. )
  8.  
  9. INSERT INTO tabla_logfile VALUES (1,NULL,'ONLINE','C:\ORACLEXE_C\APP\ORACLE\FAST_RECOVERY_AREA\XE\ONLINELOG\O1_MF_1_BJD7NM9O_.LOG')
  10. INSERT INTO tabla_logfile VALUES (2,NULL,'ONLINE','D:\ORACLEXE_D\APP\ORACLE\FAST_RECOVERY_AREA\XE\ONLINELOG\O1_MF_1_BJD7NM9O_.LOG')
  11. INSERT INTO tabla_logfile VALUES (3,NULL,'ONLINE','E:\ORACLEXE_E\APP\ORACLE\FAST_RECOVERY_AREA\XE\ONLINELOG\O1_MF_1_BJD7NM9O_.LOG')
  12. INSERT INTO tabla_logfile VALUES (1,NULL,'ONLINE','Z:\ORACLEXE_Z\APP\ORACLE\FAST_RECOVERY_AREA\XE\ONLINELOG\O1_MF_1_BJD7NM9O_.LOG')



Lo que se desea es que mediante una consulta los registros que tengan el mismo id "grupo#" se unan es decir quedarian así.

Código SQL:
Ver original
  1. SELECT 'ALTER DATABASE ADD LOGFILE GROUP: ' || a.GROUP# || ' '|| a.MEMBER   FROM tabla_logfile A
  2. WHERE a.GROUP# IN (SELECT  GROUP# FROM tabla_logfile GROUP BY GROUP# HAVING COUNT(*) = 1 )
  3. UNION
  4. SELECT 'ALTER DATABASE ADD LOGFILE GROUP: ' || a.GROUP# || ' '|| a.MEMBER   FROM tabla_logfile A
  5. WHERE a.GROUP# IN (SELECT  GROUP# FROM tabla_logfile GROUP BY GROUP# HAVING COUNT(*) = 2 )
Si lo ejecutan verán que salen 4 registros... de los cuales deberían salir 3 porque hay 2 registros con el numero de grupo 1 ... entonces lo que deberia salir asi:

ALTER DATABASE ADD LOGFILE GROUP: ' || a.Group# || ' '|| a.MEMBER + la 2da ruta del otro registro que tiene el mismo grupo.

LO INTENTEE CON MUCHAS COSAS :( SIN EXITO..

Espero tengan una sugerencia o una luz u.u

Última edición por gnzsoloyo; 16/03/2015 a las 09:35