SAP B1: Query de ventas por clientes en un periodo

sql
business-one
Etiquetas: #<Tag:0x00007f10e8899b80> #<Tag:0x00007f10e8898c30>

#1

Al entrar ayer a este fórum buscaba como hacer consultas para hacer un análisis de ventas, seguí las recomendación que dieron y aquí les comparto el query que hice hoy y que me dio resultados.
Por favor cualquier recomendación que quieran hacerme es bienvenida.

– Reporte que muestra las Ventas Netas por cliente en el 2017 y calcula % que representa el total vendido al cliente en relación al monto total vendido en el año

Declare @Venta2017 as numeric
 
SET @Venta2017= ( (Select SUM (T3.LineTotal) 
FROM OINV T2 INNER JOIN INV1 T3 ON T2.DocEntry = T3.DocEntry 
where T2.DocDate between '20170101' and '20171231') + (SELECT case when SUM (T5.LineTotal)*-1 < 0 THEN SUM (T5.LineTotal)*-1 ELSE 0 END
FROM ORIN T4 INNER JOIN RIN1 T5 ON T4.DocEntry = T5.DocEntry 
where T4.DocDate between '20170101' and '20171231'))

Select T2. Cardcode 'Cliente', T8.CardName 'Nombre Cliente',
SUM (T3.LineTotal) 'Total Facturado 2017',
(SELECT case when SUM (T5.LineTotal)*-1 < 0 THEN SUM (T5.LineTotal)*-1 ELSE 0 END
FROM ORIN T4 INNER JOIN RIN1 T5 ON T4.DocEntry = T5.DocEntry 
where T4.DocDate between '20170101' and '20171231' and T2. cardcode=T4.CardCode) 'Notas de Crédito 2017',

SUM (T3.LineTotal) +
(SELECT case when SUM (T5.LineTotal)*-1 < 0 THEN SUM (T5.LineTotal)*-1 ELSE 0 END
FROM ORIN T4 INNER JOIN RIN1 T5 ON T4.DocEntry = T5.DocEntry 
where T4.DocDate between '20170101' and '20171231' and T2.cardcode=T4.CardCode) 'Venta Neta 2017',

(SUM (T3.LineTotal) + (SELECT case when SUM (T5.LineTotal)*-1 < 0 THEN SUM (T5.LineTotal)*-1 ELSE 0 END
FROM ORIN T4 INNER JOIN RIN1 T5 ON T4.DocEntry = T5.DocEntry 
where T4.DocDate between '20170101' and '20171231' and T2.cardcode=T4.CardCode)) / @Venta2017*100 as'% del total vendido'

FROM OINV T2 
INNER JOIN INV1 T3 ON T2.DocEntry = T3.DocEntry 
INNER JOIN OCRD T8 ON T8.[CardCode]= T2.[CardCode]
where T2.DocDate between '20170101' and '20171231'
Group By T2.CardCode, T8.CardName
Order By 5 Desc

Seguir aprendiendo de SAPO Business One
#2

@Alvarez, te super agradezco este tipo de aportes, pero por favor indica más de qué se trata, qué información brinda, para qué sirve el query, etc… así otras personas (como yo) que no sabemos nada de Business One, podemos entender más y aprender.


#3

Hola buenas noches,
el reporte presentado les permite mostrar las Ventas Netas por cliente en el 2017 (facturas menos NC) y además calcula % que representa el total vendido al cliente en relación al monto total vendido en ese año. En ese reporte primero declaro una variable para almacenar el total vendido (facturas – NC) por la empresa en ese año. Luego dentro de una consulta a las tablas de las facturas (OINV y INV1) primero calculo la columna total facturado a un cliente
SUM (T3.LineTotal) 'Total Facturado 2017’
Y luego coloco una subconsulta para calcular el valor de las notas de crédito por cliente, la siguiente columna muestra la suma de lo facturado a un cliente mas el valor de las NC (que aparecen en negativo),
Por ultimo dividiendo el total facturado a un cliente entre la variable con el total vendido en el año, calculo que por ciento del total vendido corresponde a las ventas de ese cliente
Nota: dentro del subquery de la NC tuve que meter un case porque me traía valor null en aquellos casos que no tenían NC, por lo tanto tuve que ponerle valor cero para poderlo sumar con lo facturado y mostrar la columna del total


#4

Este tema se cerró automáticamente 91 días después del último post. No se permiten nuevas respuestas.