Hola, necesito su ayuda. Estoy haciendo un reporte que debería mostrar solo el primer registro por código, que es la primera vez que salio de vacaciones; como tendría que modificar el query al que he llegado? Gracias por su ayuda.
Cita: C_C_EMPRESA, C_C_AUXILIAR, C_C_CODIGO, C_C_PERIODO_VAC, C_C_GRUPO, D_D_INICIO, D_D_TERMINO, N_N_DIAS_EFECTIVO, N_N_DIAS_PENDIENTE, DIAS_EFECTIVO
01 T 17 0003 01 16/10/1998 14/11/1998 30.00 0.00 30.00 0.00 MATIENZO FLORES CARLOS 1997 - 1998
01 T 19 0003 01 16/01/1999 14/02/1999 30.00 0.00 30.00 0.00 MESTANZA GARCIA AUGUSTO 1997 - 1998
01 T 2 0003 01 15/04/1999 14/05/1999 30.00 0.00 30.00 0.00 AGUILAR PADILLA IRIS VIOLETA 1997 - 1998
01 T 20 0003 01 01/03/1999 15/03/1999 30.00 0.00 15.00 0.00 MILLONES CARRILLO WILFREDO HUGO 1997 - 1998
01 T 20 0003 01 25/05/1999 08/06/1999 30.00 0.00 15.00 0.00 MILLONES CARRILLO WILFREDO HUGO 1997 - 1998
01 T 20001 0006 01 27/07/2000 27/07/2000 2.00 28.00 1.00 28.00 SUBAUSTE BRACESCO ARMANDO MIGUEL 2000 - 2001
01 T 20001 0006 01 31/07/2000 31/07/2000 2.00 28.00 1.00 28.00 SUBAUSTE BRACESCO ARMANDO MIGUEL 2000 - 2001
01 T 20002 0006 01 10/09/2001 24/09/2001 30.00 0.00 15.00 0.00 VEGA MEJIA CECILIA FRIDA 2000 - 2001
01 T 20002 0006 01 22/10/2001 28/10/2001 30.00 0.00 7.00 0.00 VEGA MEJIA CECILIA FRIDA 2000 - 2001
01 T 20002 0006 01 10/12/2001 16/12/2001 30.00 0.00 7.00 0.00 VEGA MEJIA CECILIA FRIDA 2000 - 2001
1 01 T 20002 0006 01 07/01/2002 07/01/2002 30.00 0.00 1.00 0.00 VEGA MEJIA CECILIA FRIDA 2000 - 2001
Y este el query:
Código SQL:
Ver originalSELECT A.C_C_EMPRESA,
A.C_C_AUXILIAR,
A.C_C_CODIGO,
A.C_C_PERIODO_VAC,
A.C_C_GRUPO,
D.D_D_INICIO,
D.D_D_TERMINO,
A.N_N_DIAS_EFECTIVO,
A.N_N_DIAS_PENDIENTE,
D.N_N_DIAS_EFECTIVO AS DIAS_EFECTIVO,
A.N_N_DIAS_PENDIENTE,
uf_desc_trabajador(A.c_c_empresa, A.c_c_grupo, A.c_c_codigo) AS nombre,
UF_DESC_PERIODO_VAC_new( A.c_c_empresa, A.c_c_periodo_vac) AS periodo_vacacional,
uf_desc_grupo_planilla (A.c_c_empresa, A.c_c_grupo) AS grupo_planilla ,
TO_DATE(B.D_PROG_VACACION,'dd/mm/yyyy') AS d_d_prog_vacacion,
TO_DATE(B.D_INGRESO,'dd/mm/yyyy') AS d_d_ingreso ,
ADD_MONTHS(to_date(B.d_prog_vacacion, 'dd/mm/yyyy'),12 * (TO_NUMBER(TO_CHAR(C.D_D_DESDE, 'YYYY')) - to_number(to_char(ADD_MONTHS(to_date(B.d_prog_vacacion, 'dd/mm/yyyy'), 12), 'yyyy')) + 1)) AS d_d_habil_inicio,
ADD_MONTHS(to_date(B.d_prog_vacacion, 'dd/mm/yyyy'),12 * (TO_NUMBER(TO_CHAR(C.D_D_DESDE, 'YYYY')) - to_number(to_char(ADD_MONTHS(to_date(B.d_prog_vacacion, 'dd/mm/yyyy'), 12), 'yyyy')) + 2)) - 1 AS d_d_habil_termino
FROM VACACION_PROGRAMACION A,
TRABAJADOR B,
PERIODO_VACACIONAL C,
VACACION_EFECTIVA D
WHERE A.C_C_EMPRESA = '01' AND
A.C_C_GRUPO = '&grupo' AND
A.C_C_AUXILIAR = 'T' AND
A.C_C_EMPRESA = B.C_C_EMPRESA AND
A.C_C_CODIGO = B.C_C_CODIGO AND
A.C_C_AUXILIAR = B.C_C_AUXILIAR AND
A.C_C_GRUPO = B.C_C_GRUPO AND
A.C_C_EMPRESA = C.C_C_EMPRESA AND
A.C_C_PERIODO_VAC = C.C_C_PERIODO_VAC AND
TO_CHAR(D.D_D_INICIO,'YYYYMMDD')>='&fecha_ini' AND
TO_CHAR(D.D_D_TERMINO,'YYYYMMDD')<='&fecha_fin' AND
A.C_C_GRUPO = D.C_C_GRUPO AND
A.C_C_AUXILIAR = D.C_C_AUXILIAR AND
A.C_C_EMPRESA = D.C_C_EMPRESA AND
A.C_C_CODIGO = D.C_C_CODIGO AND
A.C_C_AUXILIAR = D.C_C_AUXILIAR AND
A.C_C_PERIODO_VAC = D.C_C_PERIODO_VAC --and
ORDER BY 3,4,6
Saludos.