Ver la Versión Completa : Saber si Select Single Regreso mas de 1 registro
Saber si Select Single Regreso mas de 1 registro..
Es posible?
Saludos.
temaljose
11/02/08, 16:51:41
el select single te regresa nada mas una entrada si existen varias te agarra la entrada mas antigua, si quieres que un select te agarre todas las entradas utiliza el select * into table, por ejemplo pero existen varias formas yo utilizo esta porque me parece mas eficiente, espero haberte ayudado, saludos
Jorge L T
11/02/08, 16:54:02
Saber si Select Single Regreso mas de 1 registro..
Un Select Single devuelve UN sólo registro o fila de la tabla en cuestión, sy-subrc = 0 => OK, sy-subrc = 4 => sin registros para el where definido
J
Select single regresa un solo registro,
sera posible saber si es unico? sin tener que hacer un count(*) o algo por el estilo...
la pregunta es solo por eficiencia en el codigo, para no escribir mas codigo de lo debido...
yo imagino algo asi
sy-subrc 0 = 1 registro
sy-subrc 8 > 1 registros... algo loco por el estilo
Saludos.
abapconsultoria
11/02/08, 17:16:08
No, no existe. Con el select single que realice de prueba observa como lo tradujo la interfase de BD.
SELECT
/*+
FIRST_ROWS (1)
*/
*
FROM
"TADIR"
WHERE
ROWNUM <= :A0
Es decir el servidor siempre vaa devolver el primero y vos no vas a tener forma desde el R3 de saber cuantos habia en la BD. Vas a tener que utilizar la funcion de agregacion directamente.
Saludos.
Muchas gracias!
En una chance, nos explicas como se hace la traduccion que hiciste...
Saludos
robert_milan
13/02/08, 14:41:42
un select single siempre te regresa un registro y siempre es el que encuentra primero con la coincidencia en el where.
por lo que si quieres saber cuantos registros extrae con la restriccion del where te sugiero que lo cambias a :
select count para saber si tienes mas de 2
abapconsultoria
13/02/08, 15:36:00
Lo que puse se obtiene de el traceo de una sentencia select en la trx ST05. Ahi podes ver la conversion que realiza la interfase de base de datos a SQL Nativo.
Saludos
willymj
11/09/08, 17:26:54
En Sql server los query para traer 10 registros es algo asi:
Select top 10 * From Tabla
en Abap eso mismo es igual a:
Select *
INTO TABLE tabla_interna
UP TO 20 ROWS
FROM but000
asi de simple.....
la gracia es el Up to traes 20 registros....
ibecerra
11/09/08, 21:52:51
quieres hacer un select count
facil
wcount type i
select count(*) into wcount from tabla where condiciones.
www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web