#1
|
|||
|
|||
select single + for all entries
Hola que tal? Quiero saber como es bien la sintaxis del select SINGLE (campo) y for all entries. Busque y siempre muestran con SELECT * + for all entries.
Yo quiero lo siguiente: VTEXT (TPART-VTEXT) quiero hacer un select single para el campo VTEXT con for all entries, hay gluna diferencia con SELECT *? o es casi lo mismo? gracias |
#2
|
|||
|
|||
No entiendo la pregunta. SELECT SINGLE devuelve sólo un registro, mientras que cuando uno usa FAEI se supone que quiere todos los registros de una tabla coincidentes con otra.
SI lo que quieres es que te devuelva sólo un registro para cada uno de la tabla original, FOR ALL ENTRIES lo hace por defecto (lleva un DISTINCT implícito).
__________________
"Porque algunos sabemos que somos parte del problema"
|
#3
|
|||
|
|||
Si, gracias, con el single no era necesario me parece ponerle eso, ya lo hice de otra forma, igual muchas gracias por la ayuda, y creo que me exprese mal.
EDIT: que quilombo que es el batch input cuando quiere, dios. |
#4
|
|||
|
|||
Segun pude entender lo que tu tienes es una tabla con codigos de Interlocutores o algun tipo de codigo y quieres actualizar el campo Denominación.
Si es eso lo que tu quieres hacer es actualizar esos campos con un Select single VTEXT into tabla-vtext from tpart for all entries in tabla where PARVW = tabla-PARVW. Bueno lo que pasa es que necesitas tener en claro los conceptos de select single y el for all entries Select single -> Solo devuelve un valor o registro o el primero que encuentre ( No necesariamente significa que en la tabla consultada exista un solo registro con las condiciones utilizadas ) For all entries -> ( Para todas las entradas ) se usa para obtener datos que dependan de uno o mas campos de una tabla interna .. por ejemplo tienes en una tabla el listado de pedidos ( cabecera ) y quieres obtener las posiciones de cada pedido en otra tabla ( detalle ) haces lo siguiente Select pedido posiciones from ekpo for all entries in t_pedidos where ebeln = t_pedidos-ebeln. Espero se haya entendido al menos algo xP! Ahora para tu requerimiento puedes hacer esto: 1) En la consulta donde obtienes los códigos de Interlocutor realiza un Join a la tabla tpart y obtienes también la denominación. Select a~codigo a~etc a~etc b~vtext from t_maestra as a (Tabla standar no se cual usas) left join tpart as b on a~campoCodigo = b~campoCodigo where (tus Condiciones) Te recomiendo que hagas eso .. pongo el left join porque no se si todos los códigos esten en la tabla tpart. Si estas seguro que están entonces puedes usar INNER JOIN. 2) Select codigo vtext from tpart into table t_denominacion for all entries in tu_tablainterna where codigoTpart = tabla_interna-codigo. luego un loop. loop at tabla_interna assinging <fs>. read table t_denominacion with key PARVW = tabla_interna-PARVW. if sy-subrc = 0. <fs>-vtext = t_denominacion-vtext. endif. endloop. 3) También puedes hacer el loop a la tabla interna y dentro un select single a la TPART con el codigo y actualizas el campo vtext ( NO RECOMENDABLE ) Ojala haya respondido y mas q todo se haya entendido lo que puse xD! SUerte saludos |
Herramientas | Buscar en Tema |
Desplegado | |
|
|