|
#1
|
|||
|
|||
Collect
El collect funciona no con un campo "clave", pero debes tener la precaucion de:
- poner todos los campos "clave" los primeros de la tabla interna, p ej: el nº de factura, la fecha, etc y los ultimos campos de la tabla interna sería los campos a sumarizar. - hacer un sort de la tabla interna antes de recorrerla y hacer el collect. debes ordenar los registros de la tabla interna con el mismo patron que quieras que luego te sumarize los campos. es muy engorroso y muy caprichoso, si te sirve podrias sumarizar desde el SELECT con la sentencia SUM al pasarlo a tu tabla interna SELECT CONNID COUNT( * ) SUM( LUGGWEIGHT ) INTO (CONNID, COUNT, SUM) FROM SBOOK WHERE CARRID = 'LH ' AND FLDATE = '19950228' GROUP BY CONNID. WRITE: / CONNID, COUNT, SUM, AVG. ENDSELECT. Suerte!!! |
#2
|
||||
|
||||
Belerophonte gracias por contestar, y pues no puedo hacer el select sum ya que estoy sacando mi info de una tabla interna, por eso recurro al collect, pero ya casí lo tengo listo, lo único extraño que encuentro es que, cuando comienza a contar mis cantidades siempre suma uno de mas a que se deberá?
solo la loopeo y comienzo a hacer el collect, me hace la suma en mi header line, pero siempre siempre suma uno de mas y mi tabla ya está ordenada
__________________
"Si quieres resultados distintos, no hagas siempre lo mismo" .... Einstein |
#3
|
|||
|
|||
Buenas, queria saber si al final pudiste solucionar el problema, ya que a mi me pasa lo mismo y no encuentro la manera de solucionarlo.
Muchas Gracias. Saludos. Demian M. Palavecino Buenos Aires -- Argentina |
#4
|
||||
|
||||
Al parecer me compliqué mucho la manera en que usé el comando, pero deja te digo que fué lo que hize:
Primero ordené la tabla interna que voy a loopear, y me cree otra tabla auxiliar con la misma estructura de esta misma, solamente hago un loop a mi tabla interna y pongo collect it_mitabla INTO it_mitablaauxiliar y listo, en cada vuelta va haciendo la suma pero en mi tabla auxiliar y listo, al final te queda la suma en la auxiliar para que puedas manipular tus datos, eso fué como lo resolví te reitero que creo que hay otra manera para hacerlo con menos lineas aunque en realidad esto solo m ocupó un loop de más y crear otra tabla auxiliar, pero igual fué una solución, espero te sirva. Salu2
__________________
"Si quieres resultados distintos, no hagas siempre lo mismo" .... Einstein |
#5
|
|||
|
|||
Sentencia Collect
Muchisimas Gracias, ahora lo pruebo y te cuendo.
Saludos!!!! Ahi lo Probe, que perfecto muchas gracias por tu ayuda, la verdad "10" Puntos. Saludos. Úlima edición por dpalavecino fecha: 24/07/09 a las 17:52:57. |
#6
|
|||
|
|||
No tienes que loopear para poner el código, con solo poner Collect itab alcanza.
Saludos! |
Herramientas | Buscar en Tema |
Desplegado | |
|
|