Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

290
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda