Enterprise Resource Planning Blogs by Members
Gain new perspectives and knowledge about enterprise resource planning in blog posts from community members. Share your own comments and ERP insights today!
cancel
Showing results for 
Search instead for 
Did you mean: 
Former Member

Buen día a la comunidad de SAP Business One, este es el primer post que escribo.

El motivo es para compartirles un pequeño query para poder contar las facturas

generadas por año y por cada cliente. Todo esto surgió a partir de la pregunta

que nos hizo Alessandro López y me pareció muy interesante. Por ello quice

compartirles mi propuesta a esa pregunta.

-- DECLARACIÓN DE VARIABLES
DECLARE @Cad VARCHAR(MAX), @SQL NVARCHAR(MAX)
-- INICIALIZACIÓN DE VARIABLES
SET @Cad = ','
-- CONCATENAR AÑOS DE FACTURAS
SELECT @Cad = @Cad + ',[' + Años.Año + ']'
FROM (SELECT DISTINCT CONVERT(VARCHAR,YEAR(DocDate)) [Año] FROM OINV) [Años]
-- QUITAR COMAS AL PRINCIPIO
SELECT @Cad = REPLACE(@Cad,',,','')
-- CONSULTA GENERAL
SET @SQL= N'
SELECT * FROM
(
SELECT CardCode, CardName, YEAR(DocDate) [Año], DocEntry
FROM OINV
) [T0]
PIVOT (
          COUNT(T0.DocEntry) FOR T0.[Año] IN (' + @Cad + ')
)AS [Count]
'
-- EJECUTAR SQL DINÁMICO
EXECUTE SP_EXECUTESQL @SQL

Como se pueden dar cuenta, utilizo SQL dinámico, esto para que nuestro pivote no sea

estático y tener que estar modificando la consulta cada que pasen los años. Desde luego,

la consulta se puede optimizar y también utilizar en algún otro documento, solo es cuestión

de cambiar las tablas.

Aquí el resultado:

Bueno, eso es todo y espero les sea de gran utilidad.

Saludos cordiales.

Carlos Ventura.

3 Comments
Labels in this area