Oracle - Generar archivos distintos con información agrupada

 
Vista:
sin imagen de perfil
Val: 17
Ha aumentado 1 puesto en Oracle (en relación al último mes)
Gráfica de Oracle

Generar archivos distintos con información agrupada

Publicado por Alejandro (10 intervenciones) el 05/09/2018 16:54:46
Tengo una tabla con información agrupada por áreas y necesito generar 3 salidas (archivos) uno por cada área con la información que corresponde por área
Ejemplo

Área Columna 1 Columna 2 Columna 3
Finanzas A - A
Finanzas A - A
Contabilidad B B B
Contabilidad B B B
Bodega C C -

grupo

Por favor me ayudan a resolver el PLSQL que recorre la información por área y obtener las 3 salidas una para Finanzas con solo las columnas que corresponde Finanzas y otra para Contabilidad y sus columnas y los mismo para Bodega.

Desde ya muy agradecido por su colaboración.
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
sin imagen de perfil
Val: 499
Oro
Ha mantenido su posición en Oracle (en relación al último mes)
Gráfica de Oracle

Generar archivos distintos con información agrupada

Publicado por Rafael (328 intervenciones) el 06/09/2018 08:26:03
CHico pero que tienes hecho ???

Es que te ayudemos o que te lo hagamos ????

Como se llama la tabla ??? al menos tienes el query ???

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
sin imagen de perfil
Val: 17
Ha aumentado 1 puesto en Oracle (en relación al último mes)
Gráfica de Oracle

Generar archivos distintos con información agrupada

Publicado por Alejandro (10 intervenciones) el 11/09/2018 17:34:09
Hola disculpa la demora en responder.
Es que necesito hacer lo siguiente tengo un cursor que recorre un modelo de datos para armar querys dinámicas a solicitud del usuario.
aca esta el codigo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
DECLARE
    CURSOR c_dic IS
          SELECT zqpr_cdg_tpo_prc,
                 zqfi_nmb_sin,
                 zqfi_nmb_tab,
                 zqfi.zqfi_seq_cdg,
                 zqdi.zqdi_nmb_tec_col,
                 zqdi.ZQDI_GLS_LOG_CRUCE
            FROM zbeta_query_proceso zqpr
                 INNER JOIN zbeta_query_fuente_informacion zqfi
                     ON zqpr.zqpr_seq_cdg = zqfi.zqpr_seq_cdg
                 INNER JOIN zbeta_query_diccionario zqdi
                     ON zqfi.zqfi_seq_cdg = zqdi.zqfi_seq_cdg
                 INNER JOIN zbeta_query_select zqsl
                     ON TRIM (zqdi.zqdi_nmb_col_user) =
                        TRIM (zqsl.zqsl_nmb_col_user)
        GROUP BY zqpr_cdg_tpo_prc,
                 zqfi_nmb_sin,
                 zqfi_nmb_tab,
                 zqfi.zqfi_seq_cdg,
                 zqdi.zqdi_nmb_tec_col,
                 zqdi.ZQDI_GLS_LOG_CRUCE
        ORDER BY 3 ASC;
 
    CURSOR c_col IS
          SELECT zqpr_cdg_tpo_prc,
                 zqfi_nmb_sin,
                 zqfi_nmb_tab,
                 zqfi.zqfi_seq_cdg,
                 zqdi.zqdi_nmb_tec_col
            FROM zbeta_query_proceso zqpr
                 INNER JOIN zbeta_query_fuente_informacion zqfi
                     ON zqpr.zqpr_seq_cdg = zqfi.zqpr_seq_cdg
                 INNER JOIN zbeta_query_diccionario zqdi
                     ON zqfi.zqfi_seq_cdg = zqdi.zqfi_seq_cdg
                 INNER JOIN zbeta_query_select zqsl
                     ON TRIM (zqdi.zqdi_nmb_col_user) =
                        TRIM (zqsl.zqsl_nmb_col_user)
        GROUP BY zqpr_cdg_tpo_prc,
                 zqfi_nmb_sin,
                 zqfi_nmb_tab,
                 zqfi.zqfi_seq_cdg,
                 zqdi.zqdi_nmb_tec_col
        ORDER BY 3 ASC;
BEGIN
    FOR r_dic IN c_dic
    LOOP
            DBMS_OUTPUT.put_line (
             '  SELECT '
            || R_DIC.zqdi_nmb_tec_col
            || ' FROM '
            || r_dic.zqfi_nmb_tab
            || r_dic.ZQDI_GLS_LOG_CRUCE
            );
    END LOOP;
END;

Genera la salida asi

1
2
3
4
SELECT GRNG_GRP_EMPRESA FROM GC_DIST_REAL_NGGT
SELECT MCEEXC_CDG_NV1 FROM GC_DIST_REAL_NGGTLEFT JOIN MAESTRO_AUXILIAR_FABRICA MAFB ON MAFB.MAFB_CDG_EPSILON = GRNG.GRNG_CDG_CLSF_GAMA AND MAFB.MAFB_CDG_DIVISION = GRNG.GRNG_CDG_NEGOCIO AND MAFB.MAFB_NMB_AUXILIAR = 'FABMIX_AUX_CEEX' AND MAFB.MAFB_MES_PROCESO = '01-01-2013' LEFT JOIN MAESTRO_CENTRO_EXCELENCIA MCEEXC ON MCEEXC.MCEEXC_CDG = MAFB.MAFB_CDG_CEEX
SELECT MSSR_CDG_DOMINT_NEG FROM GC_DIST_REAL_NGGTLEFT JOIN MAESTROS_SUBRUTAS MSSR ON GRNG.GRNG_CDG_SUBRUTA  =  MSSR.MSSR_CDG_SUBRUTAS
SELECT GRNG_CDG_CENTRO_COSTO FROM GC_DIST_REAL_NGGT

Como puedo ajustarlo para que la salida sea así:
1
2
3
4
5
6
7
8
Select
GRNG_GRP_EMPRESA
MCEEXC_CDG_NV1
MSSR_CDG_DOMINT_NEG
GRNG_CDG_CENTRO_COSTO
FROM GC_DIST_REAL_NGGT
LEFT JOIN MAESTRO_AUXILIAR_FABRICA MAFB ON MAFB.MAFB_CDG_EPSILON = GRNG.GRNG_CDG_CLSF_GAMA AND MAFB.MAFB_CDG_DIVISION = GRNG.GRNG_CDG_NEGOCIO AND MAFB.MAFB_NMB_AUXILIAR = 'FABMIX_AUX_CEEX' AND MAFB.MAFB_MES_PROCESO = '01-01-2013' LEFT JOIN MAESTRO_CENTRO_EXCELENCIA MCEEXC ON MCEEXC.MCEEXC_CDG = MAFB.MAFB_CDG_CEEX
LEFT JOIN MAESTROS_SUBRUTAS MSSR ON GRNG.GRNG_CDG_SUBRUTA  =  MSSR.MSSR_CDG_SUBRUTAS

cualquier ayuda y orientación la agradezco mucho, soy practicante en plsql por eso me demoro en responder y generar los scripts,
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