Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - CALVINAHOBBES

Páginas: [1]
1
Programación ABAP / Re: INNER JOIN
« en: 24 de Octubre de 2007, 09:34:17 am »
BUENO LO HE RESUELTO PERO SIN PODR UTILIZAR TABLAS INTERNAS Y ESO ES LO QUE ME MOLESTA.

SOLUCION:


REPORT ZMENDRUZCO.

TABLES: ZTRABAJO,
            ZEMPLEADO,
            ZPROYECTO.

DATA: COUNT TYPE I.
DATA: DNI    LIKE ZTRABAJO-DNI_EMPLEADO,
         NAME  LIKE ZEMPLEADO-NOMBRE,
         ID      LIKE ZTRABAJO-ID_PROYECTO.

SELECT
      ZTRABAJO~DNI_EMPLEADO
      ZEMPLEADO~NOMBRE
      COUNT(*)
      INTO (DNI, NAME, COUNT)

      FROM ZTRABAJO
        JOIN ZPROYECTO ON ZTRABAJO~ID_PROYECTO = ZPROYECTO~ID_PROYECTO
        JOIN ZEMPLEADO ON ZTRABAJO~DNI_EMPLEADO = ZEMPLEADO~DNI_EMPLEADO

      WHERE
        ZPROYECTO~HORAS > 20

      GROUP BY ZTRABAJO~DNI_EMPLEADO ZEMPLEADO~NOMBRE.

      WRITE: / DNI, NAME, COUNT.

ENDSELECT.

2
Programación ABAP / Re: INNER JOIN
« en: 23 de Octubre de 2007, 12:13:38 pm »
Nuria Tu ejemplo me ha servido aunque  a la hora de colocar un count mi código genera problemas.

Esto es lo que debo hacer:

Se dispone de las siguientes tablas:
ZMEMPLEADO:    DNI, Nombre
ZMTRABAJO:    Empleado, id_Proyecto
ZMPROYECTO:   Id_proyecto, Nombre_proy,   Horas

Un empleado puede estar una o más asignaciones a proyectos y un proyecto puede tener  una o más asignaciones a empleados.
Se debe hacer un listado del DNI y nombre de cada empleado, junto con el número de proyectos que tiene asignado, siempre y cuando estos proyectos superen las 20horas.

Lo que hago es lo siguiente:
genero las tablas, las claves foraneas , introduzco datos etc.

codigo:

REPORT zempleado.

TABLES: zempleado,
            ztrabajo,
            zproyecto.


DATA: BEGIN OF zint OCCURS 0,

              nombre         LIKE zempleado-nombre,
              dni_empleado LIKE ztrabajo-dni_empleado,
              id_proyecto   LIKE ztrabajo-id_proyecto,
              horas           LIKE zproyecto,

END OF zint.


DATA: count TYPE i.

SELECT   zempleado~nombre
             ztrabajo~dni_empleado
*****             COUNT(ZTRABAJO-ID_PROYECTO) SURGE ERRORES *****

INTO CORRESPONDING FIELDS OF TABLE zint

FROM ztrabajo INNER JOIN zempleado
                         ON ztrabajo~dni_empleado = zempleado~dni_empleado
                    INNER JOIN zproyecto
                         ON ztrabajo~id_proyecto  = zproyecto~id_proyecto

WHERE zproyecto~horas > 20.

PERFORM write.

FORM write.
  LOOP AT zint.
       WRITE:  /3 zint-nombre, 12 zint-dni_empleado.
  ENDLOOP.
ENDFORM.

*************************************************

ESTE CODIGO ME LISTA LOS DNI Y NOMBRES DE EMPLEADOS CON PROYECTOS > 20 HORAS, SIN AGRUPARLOS.

PERO CUANDO INTENTO COLOCAR EL COUNT O UN GROUP BY EL CODIGO GENERA ERROR.
AYUDADME :(

3
Programación ABAP / INNER JOIN
« en: 22 de Octubre de 2007, 09:51:34 pm »
DE ANTEMANO GRACIAS LAURA POR TU INDICACIÓN DE " ' "

QUIERO RELACIONAR VARIAS TABLAS, INTENTO UTILIZAR SELECT INNER JOIN PERO LOS MANUALES QUE TENGO NO SON MUY CLAROS Y GENERO MUCHOS ERRORES DE SINTAXIS,  SI ALGUNO ME PUEDE AYUDAR CON EJEMPLOS ESTARIA MUY BIEN. ???




4
Programación ABAP / AYUDA ELEMENTAL
« en: 19 de Octubre de 2007, 12:35:36 pm »
Hola,  estoy haciendo mis primeros programillas en ABAP/4 , pero como todo surgen los errores menos esperados.

escribo estas lineas de codigo:
*----------------------------------------------------------------
*ENCABEZADO DEL LISTADO
*----------------------------------------------------------------
   TOP-OF-PAGE.
   WRITE: /3 'PRODUCTOS’.
   ULINE.

y surge el siguiente ERROR:

The text literal 'PRODUCTOS'. is longer that 255 characters. Please check whether it ends with a quotation mark.

No se como solucionarlo ¿me podeis ayudar?
Gracias.

Páginas: [1]