Gracias a todos por la ayuda, no puedo hacerlo con un SQL porque el fichero lo trato en un programa CL, de todas formas lo he resuelto de la manera mas fácil, creando un lógico con un sólo campo que es clave y así en el OPNQRYF no tengo que poner mas que este campo en el parámetro GRPFLD y funciona perfectamente
Un saludo El 15 de julio de 2010 17:35, Lorenzo Martinez <lmartinezg...@gmail.com>escribió: > Hola. > > Te lo digo de memoria, ya que hace tiempo que no hago esto: > > De alguna manera, al indicar que quieres agrupar, es obligatorio que todos > los campos en el formato resultante sean o bien claves de grupo o campos > agregados (sumas, medias, etc.) > > Si tienes muchos campos en el fichero puede ser un tanto engorroso. > > En estos casos yo preparaba otro archivo "plantilla" con los campos > resultantes que quería obtener (periodo, y los campos de totales, con los > nombres que quieras) y en el OPNQRYF indicas que quieres utilizar ese > formato (el fichero puede estar vacío, es solo para la descripción del > formato) y además tienes que indicar como mapear los campos con las > operaciones de suma, etc. con la palabra clave MAPFLD. > > Es bastante engorroso, la verdad. > > Además, el programa que lea el fichero debe esperar ese mismo formato, y > tal vez no sea conveniente. > > Te dejo un ejemplo (ARC001 sería el archivo real con muchos campos y ARC002 > la plantilla solo con los campos CLAVE1, CLAVE2, IMPORTE y CUENTA): > > OPNQRYF FILE((ARC001)) > OPTION(*INP) > FORMAT(ARC002) > KEYFLD((CLAVE1) (CLAVE2)) > GRPFLD(CLAVE1 CLAVE2) > MAPFLD((IMPORTE '%SUM(1/IMPORTE)') (CUENTA '%COUNT' *DEC 3 > 0)) > > > > En general, si lo puedes hacer con SQL embebido por ejemplo parece más > limpio y más cómodo, o mediante un archivo temporal. > > > Un saludo. > > > > > El 15/07/2010 16:04, JUAN García escribió: > > Saludos > > > Necesito agrupar los registros de un fichero por un campo en un OPNQRYF: > > OPNQRYF FILE((FILE)) QRYSLT(*ALL) KEYFLD((PERIODO)) GRPFLD(PERIODO) > GRPSLT(*ALL) > > Pero me da el error CPD3165, este error mas o menos viene a decir que > cuando se utiliza la agrupación de registros todos los campos del formato de > registro deben ser campos de agrupación, es decir deben estar incluidos en > el parámetro GRPFLD, pero yo sólo quiero agrupar por este campo, ¿hay alguna > manera de hacerlo? > > Gracias > > > ____________________________________________________ > Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd ) > Forum.Help400 © Publicaciones Help400, S.L. > > > > ____________________________________________________ > Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd ) > Forum.Help400 © Publicaciones Help400, S.L. >
____________________________________________________ Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd ) Forum.Help400 © Publicaciones Help400, S.L.