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