Query con encabezados variables

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.

Hola @oec2509 si pasas por la sección de Presentaciones y nos cuentas algo mejor que mejor…y si nos posteas (editando correctamente) la consulta entera en vez de la imagen… mejor aún.

Si tienes SQL un PIVOT te soluciona el problema, si tienes HANA mejor utiliza una herrameinta adicional, Power Query en Excel podria ser lo mas sencillo

Este tema se cerró automáticamente 30 días después de la última publicación. No se permiten nuevas respuestas.