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 originalCREATE TABLE tabla_logfile
(
GROUP# INT,
STATUS VARCHAR (10),
TYPE VARCHAR (10),
MEMBER VARCHAR (100)
)
INSERT INTO tabla_logfile VALUES (1,NULL,'ONLINE','C:\ORACLEXE_C\APP\ORACLE\FAST_RECOVERY_AREA\XE\ONLINELOG\O1_MF_1_BJD7NM9O_.LOG')
INSERT INTO tabla_logfile VALUES (2,NULL,'ONLINE','D:\ORACLEXE_D\APP\ORACLE\FAST_RECOVERY_AREA\XE\ONLINELOG\O1_MF_1_BJD7NM9O_.LOG')
INSERT INTO tabla_logfile VALUES (3,NULL,'ONLINE','E:\ORACLEXE_E\APP\ORACLE\FAST_RECOVERY_AREA\XE\ONLINELOG\O1_MF_1_BJD7NM9O_.LOG')
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 originalSELECT 'ALTER DATABASE ADD LOGFILE GROUP: ' || a.GROUP# || ' '|| a.MEMBER FROM tabla_logfile A
WHERE a.GROUP# IN (SELECT GROUP# FROM tabla_logfile GROUP BY GROUP# HAVING COUNT(*) = 1 )
UNION
SELECT 'ALTER DATABASE ADD LOGFILE GROUP: ' || a.GROUP# || ' '|| a.MEMBER FROM tabla_logfile A
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