#1
|
|||
|
|||
Ayuda loop.
Hola.
Tengo un problema en un loop. Yo estoy metiendo datos de una tabla interna a otra, y me sale un problema a ver si logro esplicarme. Ejemplo. Tabla i_a. linea | cant1 | fecha1| ----------------------- 1 | | 12.02.2002 --------------------------- 1 | 1 | ------------------------- 2 . . . Lo que quiero es que pasar cada linea a la otra tabla, osea que qeude la linea 1 que en esta tabla tiene 2 registros, quede en un solo registro en la otra tabla. estoy haciendo un loop y supongo que para el append a la otra tabla hay que usar un : loop at i_a. .... at new linea. append end at. endloop. Mi pregunta es: cual de los at....endat que hay debo usar, o si no es asi, como lo prodria hacer. Muchas gracias. |
#2
|
|||
|
|||
o sea que en tu otra tabla quieres que te quede mas o menos así?:
Tabla i_a. linea | cant1 | fecha1| ----------------------- 1 | 1 | 12.02.2002 --------------------------- 2 . . . o como? |
#3
|
|||
|
|||
perdona la tardanza en responder, si eso es lo que quiero.
como podria hacerlo??? muchas gracias |
#4
|
|||
|
|||
Podrías usar COLLECT.
De esta forma, te agruparía todos los valores de tipo cadena y te sumaría los numéricos, porque supongo que si hay necesitas tener el total de ellos. Si, simplemente quieres quedarte con un único registro puedes usar el DELETE ADJUNT DUPLICATE que te eliminará todos los registros que estén duplicados. Un saludo. |
#5
|
|||
|
|||
gracias pero lo del collect y delete adjacent duplicates no me vale, es con el at...endat pero no se como.
muchhas gracias |
#6
|
|||
|
|||
Yo haría lo siguiente:
Una vez la tabla ordenada ascendente por el campo "línea", hacés un loop. Vaz chequeando con "IF" si los otros campos están vacíos. Si no, los vas copiando a otra work área. Dentro del LOOP que haya un "AT END OF línea". Ahí, appendeás esa work área que vas armando a otra tabla interna. Y borrás la WA. Una cosa así sería. Corríjanme si me equivoco: Úlima edición por Abaunus fecha: 13/07/09 a las 18:09:10. |
#7
|
|||
|
|||
Hola , a ver si te entiendo. tienes asi linea | cant1 | fecha1| ----------------------- 1 | 1 | 12.02.2002 --------------------------- 1 | 1 | xx.xx.xxxx ------------------------- 2 | 2 | xx.xx.xxxxx 2 | 2 | xx.xx.xxxxx y quieres tomar una linea del registro por cada linea entonces has lo siguiente data fl . loop at wtabla. at new linea. fl = '1'. endat. if fl = '1'. move-corresponding wtabla to xtabla. append xtabla. fl = '0'. endat. endloop. |
#8
|
|||
|
|||
Según lo que yo entendí, lo que Miguel necesita es "acumular" o "juntar" en uno solo los datos que están en dos o más registros para el mismo número de "línea", no tomar una línea sola y descartar las siguientes... Creo que con At END OF es la forma... |
#9
|
|||
|
|||
muchas gracias funciona con at end ..... endat
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|