Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

283
Views
SQL: operaciones de suma dentro de caso cuando declaración

Necesito agregar algunas sesiones por día, país, etc. La tabla tiene un monto de transacción para cada sesión (en moneda local) y un campo con el tipo de cambio a EUR para el momento de la transacción. Me gusta esto:

 amount | currency | exchange_rate | date | country

Ejecuté sum(amount/exchange_rate), sin embargo, para aproximadamente el 0,5% de las filas, el valor de exchange_rate es 0 y, por lo tanto, arroja el error "no se puede dividir por 0".

Intenté ejecutarlo con case cuando:

 sum(case when exchange_rate = 0 then sum(amount) else sum(amount/exchange_rate) end) as volume

Pero las sumas aparentemente anidadas no están permitidas. ¿Alguien tiene una idea de cómo puedo obtener el resultado que lo anterior debería producir lógicamente, pero sin sumas anidadas en un caso cuando declaración?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Suponiendo que un tipo de cambio de 0 indica que la cantidad ya está en EUR , puede hacer lo siguiente:

 sum(amount / case when exchange_rate = 0 then 1 else exchange_rate end)
over 4 years ago · Santiago Trujillo Report

0

Creo que quieres:

 sum(case when exchange_rate = 0 then amount else amount/exchange_rate end) as volume

O por escribir un poco menos:

 sum(amount / coalesce(nullif(exchange_rate, 0), 1)) as volume
over 4 years ago · Santiago Trujillo Report

0

Esencialmente, desea considerar el tipo de cambio como 1 cuando es cero. Tu puedes hacer:

 sum(case when exchange_rate = 0 then amount else amount/exchange_rate end ) as volume
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!