Listado facturación por cliente en periodo

Buenas,

Quizás la pregunta parece muy obvio, pero no consigo obtener la información que necesito: UN LISTADO DEL MES DE JUNIO QUE ME MUESTRE LA FACTURACIÓN POR CLIENTE, DURANTE ESE PERIODO.

No me sirve el volumen de negocios, porque me suma los periodos anteriores, el libro mayor no me lo agrupa por cliente, sino por cuenta.

Por ejemplo… Necesitaría saber… De la cuenta de ventas (700000), que me lo separe por cliente. Algo muy básico.

Solo con una consulta…

¿Realizando una consulta en el query manager, te refieres?

Hola @IvanFor

si obtienes el diario por interlocutor comercial y lo clasificas según tus criterios ¿no te sirve?

Un saludo

1 me gusta

Si, lo lógico es analizar el tipo de información que quieres, como la quieres y posibles parámetros…
Con ello montar una vista en el sql y ejecutar la consulta contra esa vista.

  • Ventas

    • Informes de Ventas

      • Analisis de Ventas

y son dos opciones una de solo los Clientes y Otra de los SKU/Cliente

image

image

3 Me gusta

En este caso acumula el saldo. Es decir, no muestra el importe entre las fechas.

Gracias!

¿Te refieres al diario por documentos?

Gracias!

Hola @IvanFor

te decía el libro diario: seleccionas interlocutores comerciales, y luego clasificas como quieres agrupar en la parte inferior de los criterios de selección.

Un saludo

Hola,

¿algo como esto?, tendrías que añadir en cada select el filtro por el periodo que quieres

SELECT  "CardCode" , SUM("DocTotal")  as "Total Facturado",  SUM("Total Base Imponible") as "Total Base Imponible"    FROM
(
 SELECT  T0."CardCode",  T0."DocTotal", (T0."DocTotal" - T0."VatSum") AS "Total Base Imponible"   FROM OINV T0  INNER JOIN OCRD T1 ON T0."CardCode" = T1."CardCode" INNER JOIN OCTG T2 ON T0."GroupNum" = T2."GroupNum" WHERE T0."CANCELED" ='N'
 
UNION ALL

SELECT   T0."CardCode" , 0 - T0."DocTotal", 0 - (T0."DocTotal" - T0."VatSum") AS "Total Base Imponible" FROM ORIN T0  INNER JOIN OCRD T1 ON T0."CardCode" = T1."CardCode" INNER JOIN OCTG T2 ON T0."GroupNum" = T2."GroupNum" WHERE T0."CANCELED" ='N'  

UNION ALL

SELECT  T0."CardCode", 0 - T0."DocTotal", 0 - (T0."DocTotal" - T0."VatSum") AS "Total Base Imponible" FROM ODPI T0  INNER JOIN OCRD T1 ON T0."CardCode" = T1."CardCode" INNER JOIN OCTG T2 ON T0."GroupNum" = T2."GroupNum" WHERE T0."CANCELED" ='N' 
 )

GROUP BY "CardCode"

Un saludo.

Me da error la consulta.

Gracias por el aporte!

La consulta la he creado en sap b1 para hana , puede ser por esto .

Sorry

Un saludo

Hola, como te decía previamente

1.- Analiza bien que quieres obtener y como.
2.- Analiza de que transacciones de B1 tienes que obtener los datos.
3.- Creas una vista en el SQL que haga ese primer filtrado o agrupamiento.
4.- Creas consultas SQL contra esa vista filtrando de nuevo.

Te aporto una consulta SQL que te resuelve tu requerimiento.
Con esta SQL tengo montada una vista y luego hago selects contra esa vista en función de diversidad de parámetros…
Ten en cuenta que tú aquí solo has comentado de una única cuenta de ventas ‘700000’ y de una única transacción que sería facturas, pero lo lógico sería que restases abonos y en el caso de la que te aporta @Jesus_Gomez tiene albaranes pendientes de facturar y anticipos de clientes…
Pero bueno te serviría para comenzar, con ellas podrías filtrar por mes, nombre de mes, agente, etc… incluso podría ser multi base de datos y podrías encadenar en esa vista otro tipo de dato que provenga de otra transacción o desmembrar y agrupar por productos o cuentas de venta.

SELECT 'MI EMPRESA' AS 'EMPRESA', T3.SlpName AGENTE, year(T1.DocDate) AS 'AÑO', month(T1.DocDate) AS 'MES', 
CASE month(T1.DocDate) WHEN 1 THEN 'Enero' WHEN 2 THEN 'Febrero' WHEN 3 THEN 'Marzo' WHEN 4 THEN 'Abril' WHEN 5 THEN 'Mayo' WHEN 6 THEN 'Junio' WHEN 7 THEN 'Julio' WHEN 8 THEN 'Agosto' 
WHEN 9 THEN 'Septiembre' WHEN 10 THEN 'Octubre' WHEN 11 THEN 'Noviembre' WHEN 12 THEN 'Diciembre' ELSE 'Error' END AS 'Mes N', max(T1.DocDate) 'FECHA', 'MI PRODUCTO' AS 'PRODUCTO', 
sum(T0.LineTotal) AS 'IMPORTE', COUNT(DISTINCT T1.CardCode) AS 'Nº CLIENTES'
FROM INV1 T0 
INNER JOIN OINV T1 ON T0.DocEntry = T1.DocEntry 
INNER JOIN OCRD T2 ON T1.CardCode = T2.CardCode 
INNER JOIN OSLP T3 ON T2.SlpCode = T3.SlpCode
WHERE T1.DocDate >= '20230101' AND T0.AcctCode IN ('700000')
GROUP BY T3.SlpName, year(T1.DocDate), month(T1.DocDate)
UNION ALL
SELECT 'MI EMPRESA' AS 'EMPRESA', T3.SlpName, year(T1.DocDate) AS 'AÑO', month(T1.DocDate) AS 'MES', 
CASE month(T1.DocDate) WHEN 1 THEN 'Enero' WHEN 2 THEN 'Febrero' WHEN 3 THEN 'Marzo' WHEN 4 THEN 'Abril' WHEN 5 THEN 'Mayo' WHEN 6 THEN 'Junio' WHEN 7 THEN 'Julio' WHEN 8 THEN 'Agosto' 
WHEN 9 THEN 'Septiembre' WHEN 10 THEN 'Octubre' WHEN 11 THEN 'Noviembre' WHEN 12 THEN 'Diciembre' ELSE 'Error' END AS 'Mes', max(T1.DocDate) 'FECHA', 'MI PRODUCTO' AS 'PRODUCTO', 
sum(T0.LineTotal)* - 1 AS 'Abonado', 0 AS 'Nº CLIENTES'
FROM RIN1 T0 
INNER JOIN ORIN T1 ON T0.DocEntry = T1.DocEntry 
INNER JOIN OCRD T2 ON T1.CardCode = T2.CardCode 
INNER JOIN OSLP T3 ON T2.SlpCode = T3.SlpCode
WHERE T1.DocDate >= '20230101' AND T0.AcctCode IN ('700000') 
GROUP BY T3.SlpName, year(T1.DocDate), month(T1.DocDate)

El último dato de número de clientes o lo quitas o analizas si te sirve, dependerá de como sea la empresa y como vende y analiza esos datos, ya que podría repetirse el código varias veces en el periodo

1 me gusta

Has logrado obtener los datos @IvanFor ??

1 me gusta

No, les aviso cuando pueda disponer de la solución.

Gracias

Me refería a si has probado esa consulta que te he pasado…¿¿??

¿@IvanFor alguna novedad por aquí?
¿Has probado las consultas ofrecidas?

1 me gusta