Duda promedios

Tengo una tabla que me almacena el tipo de cambio diario, suelo sacar un promedio mensual cada inicio de mes; es decir el 1ro de Enero saque un promedio mensual del mes de Diciembre, resulta que en diciembre el promedio salio 10 décimas menos y no me di cuenta y entregue el resultado tal como me salio y genero algunas perdidas en mi empresa, averiguando me di con la sorpresa de que alguien no había puesto el tipo de cambio el día 25 de diciembre por ser feriado y eso había hecho que el promedio bajase, quisiera saber que podría hacer para que en mi consulta me valide si uno de los días de los cuales saco promedio tiene un valor igual o menor a 0, te envío mi consulta a ver si me puedes yaudar, gracias.
SELECT AVG (FACTORCOBRANZAVENTA) AS PROMEDIO  FROM TIPOCAMBIOMAST
WHERE FECHACAMBIO BETWEEN ('01/12/2009') AND ('31/12/2009')

1 Respuesta

Respuesta
1
DE: Luis
Me podrías decir cual es el campo, donde se encuentra el monto dle tipo de cambio
para solucionarlo hay que utilizar el IF
para validar si el tipo de cambio en algún día quedo en 0 y que te muestre un mensaje,
y si los datos están correctos, entonces realizaría el calculo, tal y como esta en el script
Me puedes contactar al msm [email protected]
Hola Luis antes de todo agradeciendo tu respuesta te respondo lo siguiente,  la consulta es la siguiente SELECT AVG (FACTORCOBRANZAVENTA) AS PROMEDIO  FROM TIPOCAMBIOMAST
WHERE FECHACAMBIO BETWEEN ('01/12/2009') AND ('31/12/2009') y el campo del tipo de cambio es FactorCobranzaVenta, espero puedas ayudarme. Gracias.
PD: Te escribí al correo pero me llego un mensaje diciendo que había problemas por eso te lo envío por aquí gracias
De: Luis
Este es el script para solucionar el problemas que tienes, mi correo es [email protected]
Espero que te sirva
-- Hecho por: Luis Abarca
-- Fecha    : 25/02/2009
-- Lugar : San Jose, Costa Rica
-- Declaración de variables
Declare @FInicial as datetime, @FFinal as datetime
Declare @TotReg as int
-- Asignar los rangos de fecha
Set @FInicial= '01/12/2009'
Set @FFinal= '31/12/2009'
-- Revisa si hay montos en 0 o inferior a 0
select @TotReg= COUNT(*) from tipocambiomast WHERE FECHACAMBIO
         BETWEEN @FInicial and @FFinal and FACTORCOBRANZAVENTA<=0
-- Si hay montos en 0 muestra una lista con los dias y el monto de ese dia
if @TotReg>0
   Begin
       select FechaCambio,factorcobranzaventa from tipocambiomast WHERE FECHACAMBIO
         BETWEEN @FInicial and @FFinal and FACTORCOBRANZAVENTA<=0
   End      
else
-- si no hay montos en 0 muetra el factor
   Begin
       SELECT AVG (FACTORCOBRANZAVENTA) AS PROMEDIO  FROM TIPOCAMBIOMAST WHERE FECHACAMBIO
              BETWEEN @FInicial and @FFinal and FACTORCOBRANZAVENTA>0     
end

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas