Hola Mi Nombre es Orlando soy de San José Costa Rica, soy nuevo en el foro, pero tenemos año y dos meses de trabajar con SAP B1 9.3 hemos venido solventando los casos que se nos presentan. Ahora hice un query que me brinda para cada cliente mes a mes las ventas brutas de todo un año.
Como parámetro en el WHERE utilizo la instruccion :
DAYS_BETWEEN(F."DocDate",CURRENT_TIMESTAMP)<366
para que saque la informacion de un año y para que realice la sumatoria mes a mes utilicé:
sum (case when month(F."DocDate")= 1 then D."Quantity"*D."PriceBefDi" else 0 end) "ENE",
sum (case when month(F."DocDate")= 2 then D."Quantity"*D."PriceBefDi" else 0 end) "FEB",
sum (case when month(F."DocDate")= 3 then D."Quantity"*D."PriceBefDi" else 0 end) "MAR",
sum (case when month(F."DocDate")= 4 then D."Quantity"*D."PriceBefDi" else 0 end) "ABR",
sum (case when month(F."DocDate")= 5 then D."Quantity"*D."PriceBefDi" else 0 end) "MAY",
sum (case when month(F."DocDate")= 6 then D."Quantity"*D."PriceBefDi" else 0 end) "JUN",
sum (case when month(F."DocDate")= 7 then D."Quantity"*D."PriceBefDi" else 0 end) "JUL",
sum (case when month(F."DocDate")= 8 then D."Quantity"*D."PriceBefDi" else 0 end) "AGO",
sum (case when month(F."DocDate")= 9 then D."Quantity"*D."PriceBefDi" else 0 end) "SEP",
sum (case when month(F."DocDate")= 10 then D."Quantity"*D."PriceBefDi" else 0 end) "OCT",
sum (case when month(F."DocDate")= 11 then D."Quantity"*D."PriceBefDi" else 0 end) "NOV",
sum (case when month(F."DocDate")= 12 then D."Quantity"*D."PriceBefDi" else 0 end) "DIC"
Saca perfecto la información:
Como podrán observar en la Imagen el query ubica los valores mes a mes segun corresponda tomando de referencia la el mes del a fecha de la factura.
El único inconveniente es que si estamos en agosto, las ventas de Septiembre, Octubre, Noviembre y Diciembre sería del año 2022 y los primeros meses del 2023.
La consulta sería se puede donde Yo asigno el Alias de cada mes agregarle el año correspondiente por ejemplo:
sum (case when month(F."DocDate")= 8 then D."Quantity"*D."PriceBefDi" else 0 end) "AGO-"+ year(F."DocDate"),
sum (case when month(F."DocDate")= 9 then D."Quantity"*D."PriceBefDi" else 0 end) "SEP"+ year(F."DocDate"),
para que en las columnas se muestre: AGO-2023 | SEP-2022… Asi sucesivamente
Se que si fuese factible esa no es la sintaxis ya que lo intente y no funciona.
Sino fuese posible como lo planteo, estaría muy agradecido si me sugirieran otra forma de hacer la diferencia entre un año y otro.
Les deseo un dia muy exitoso.