cancel
Showing results for 
Search instead for 
Did you mean: 

Operaciones artméticas con generador de consultas

Former Member
0 Kudos

Hola deseo saber como puedo hacer una operacion aritmética con el generador de consulta por ejemplo:

T1.[OnHand], T0.[PurPackUn] .. piezas entre cantidad de empaque

soy nueva usuraria

gracias de antemano

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

las operaciones aritmeticas básicas en sql son:

SELECT

15 + 4, --Addition

15 - 4, --Subtraction

15 * 4, --Multiplication

15 / 5, -- Division

15 % 4; --Modulus

en el caso de la división, toma en cuenta que debes validar que no dividas entre 0, ya que como una calculadora, fallará, pero aqúí hará que falle toda la consulta.

Former Member
0 Kudos

ok muchas gracias probaré.. el problema sera que en el caso de "(On Hand)" habrá valores en "0" así que si entendí me marcara error... valdrá si pongo algún tipo de condición ???

Answers (2)

Answers (2)

elhichu2
Explorer
0 Kudos

Hola, te paso un ejemplo de una operación dentro de un select en sap 740:

DATA: lt_sight TYPE TABLE OF sight. CONSTANTS: lc_carrid TYPE s_carr_id VALUE 'UA', lc_connid TYPE s_conn_id VALUE '941'. SELECT carrid, connid, price, seatsocc_b, seatsocc_f, ( ( seatsocc_b + seatsocc_f ) ) * price AS paymentsum FROM sight WHERE carrid = @lc_carrid AND connid = @lc_connid INTO CORRESPONDING FIELDS of TABLE @lt_sight.

Se explica bien en este articulo:

https://abap.ar/como-realizar-calculos-dentro-de-sentencias-sql-en-abap-7-4/

Saludos!

Former Member
0 Kudos

totalmente.

podrías poner una condición al final de tu consulta donde diga, where onhand>0, con eso te eliminaria todos los registros donde tengas 0 en onhand y evitarás errores en la consulta.

otra forma sería que pusieras una condición en el propio campo para que te mande un mensaje en vez de un valor cuando te salga la división entre 0.

un ejemplo sería el siguiente. estoy usando variables para que lo puedas probar inmediatamente


declare @var1 int
declare @var2 int

set @var1=6
set @var2=0

select case when @var2=0 then 0 else @var1/@var2 end

set @var2=2

select case when @var2=0 then 0 else @var1/@var2 end

en el primer caso, como la variable2 era 0, mostró cero como resultado

en el segundo caso, ubico var2 con un dato mayor a 0 y ahi ya funciona

Espero que te ayude!

Si eso es todo, no olvides dar tu feedback y otorgar puntos y si no, plantea las dudas y te apoyamos

Former Member
0 Kudos

funciono muchas gracias