0% found this document useful (0 votes)
9 views19 pages

Script para Crear View para Reporte en DB SAP Business One

The document provides a SQL script for creating a view named 'GIB_REQUEST2' in a SAP Business One database. This view aggregates sales data, including item details, customer information, and sales metrics, filtered by specific conditions such as document date and customer type. The script includes multiple SELECT statements combined with UNION ALL to gather data from various tables related to invoices, returns, and quotations.

Uploaded by

Fire Base
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views19 pages

Script para Crear View para Reporte en DB SAP Business One

The document provides a SQL script for creating a view named 'GIB_REQUEST2' in a SAP Business One database. This view aggregates sales data, including item details, customer information, and sales metrics, filtered by specific conditions such as document date and customer type. The script includes multiple SELECT statements combined with UNION ALL to gather data from various tables related to invoices, returns, and quotations.

Uploaded by

Fire Base
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 19

Script para Crear View para Reporte en DB SAP Business One

USE [DB]

GO

/****** Object: View [dbo].[GIB_REQUEST2] Script Date: 9/4/2025 10:49:27 a. m.


******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

ALTER view [dbo].[GIB_REQUEST2]

as

SELECT

T1.ItemCode 'ARTICULO',

T5.ItemName 'DESCRIPCION',

CAST([U_GRUPOS] AS NVARCHAR(MAX)) AS 'GRUPO' ,

T6.[ItmsGrpNam] AS 'CATEGORIA',
T10.Name AS 'SUBCATEGORIA',

T2.Name AS 'TIENDA',

T0.[CardCode] 'CODCLIENTE',

T0.[CardName] AS 'NOMBRECLIENTE',

T11.GroupName As 'CLASIFCLIENTE',

T4.City As 'ZONA',

T4.LicTradNum As 'RNCCEDULA',

T3.SlpCode AS 'CODVENDEDOR',

T3.SlpName AS 'NOMBREVENDEDOR',

CASE WHEN T2.Name Like('%Proyecto%') THEN 'Proyecto' ELSE 'Tienda' END AS


'TIPOVENTA',

'' AS 'CLASIFTIPOVENTA',

MAX(T14.DocNum) AS 'NCOTIZACION',

MAX(T14.DocDate) AS 'FCOTIZACION',

MAX(T13.DocNUM) As 'NPEDIDO',

'Factura' AS 'TIPODOC',

T0.[DocNum] 'NDOCUMENTO',

T0.[DocDate] 'FECHA',

Sum(T1.Quantity) as 'CANTIDADFACT',

CASE WHEN T1.Currency = 'USD' THEN T1.Price*T1.Rate ELSE T1.Price END as 'PRECIO',

T0.DOCCUR AS 'MONEDA',

T0.DocRate AS 'TASA',

SUM(T1.DiscPrcnt) AS 'DESCUENTO',

SUM(T1.[LineTotal]) as 'SUBTOTAL',

SUM(T1.[LineTotal]) *(T1.[VatPrcnt]/100) AS 'ITBIS',

SUM(T1.[LineTotal])+SUM(T1.[LineTotal]) *(T1.[VatPrcnt]/100) AS 'TOTAL',

0 AS 'VentaUltimos12meses',

0 AS 'VentaUltimos12mesesCant',
0 AS '#MesesVentasUltimo12meses',

T1.StockPrice as 'COSTO'

FROM OINV T0

INNER JOIN INV1 T1 ON T0.DocEntry=T1.DocEntry

INNER JOIN OIDC T2 ON T0.Indicator = T2.Code

INNER JOIN OSLP T3 ON T0.SlpCode = T3.SlpCode

INNER JOIN OCRD T4 ON T0.CardCode = T4.CardCode

INNER JOIN OITM T5 ON T1.ItemCode = T5.ItemCode

INNER JOIN OITB T6 ON T5.ItmsGrpCod = T6.ItmsGrpCod

INNER JOIN OCTG T7 ON T0.GroupNum = T7.GroupNum

LEFT JOIN OCRD T8 ON T5.CardCode = T8.CardCode

LEFT JOIN OCRY T9 ON T8.Country = T9.Code

LEFT JOIN [@SUBCATEGORIA] T10 ON T5.U_SUBCATEGORIA = T10.Code

LEFT JOIN OCRG T11 ON T4.GroupCode = t11.GroupCode

LEFT JOIN RDR1 T12 ON T1.BaseEntry = T12.DocEntry and T1.BaseLine = T12.LineNum

LEFT JOIN ORDR T13 ON (T12.DocEntry) = T13.DocEntry

LEFT JOIN QUT1 T15 ON T12.BaseEntry = T15.DocEntry AND T12.BaseLine =


T15.LineNum

LEFT JOIN OQUT T14 ON T15.DocEntry = T14.DocEntry

WHERE

T0.DocDate >= '01-01-2023' AND

T0.[DocSubType]<>'DN' AND

T4.[CardType]='C'
GROUP BY

T0.[DocNum],

T0.[DocDate],

T0.[CardCode],

T0.[CardName],

T0.[U_Tipo_NCF],

T1.[VatPrcnt],

T2.Name,

T3.SlpName,

T6.ItmsGrpNam,

T1.ItemCode,

T5.ItemName,

T1.Price,

T1.WhsCode,

T7.PymntGroup,

T1.Currency,

T1.Rate,

T1.DiscPrcnt,

T0.DOCCUR,

T10.Name,

CAST([U_GRUPOS] AS NVARCHAR(MAX)),

T11.GroupName,

T4.City,

T4.LicTradNum,

T3.SlpCode,

T0.DocRate,

T1.StockPrice
UNION ALL

SELECT

T1.ItemCode 'ARTICULO',

T5.ItemName 'DESCRIPCION',

CAST([U_GRUPOS] AS NVARCHAR(MAX)) AS 'GRUPO' ,

T6.[ItmsGrpNam] AS 'CATEGORIA',

T10.Name AS 'SUBCATEGORIA',

T2.Name AS 'TIENDA',

T0.[CardCode] 'CODCLIENTE',

T0.[CardName] AS 'NOMBRECLIENTE',

T11.GroupName As 'CLASIFCLIENTE',

T4.City As 'ZONA',

T4.LicTradNum As 'RNCCEDULA',

T3.SlpCode AS 'CODVENDEDOR',

T3.SlpName AS 'NOMBREVENDEDOR',

CASE WHEN T2.Name Like('%Proyecto%') THEN 'Proyecto' ELSE 'Tienda' END AS


'TIPOVENTA',

'' AS 'CLASIFTIPOVENTA',

'' As 'NCOTIZACION',

'' AS 'FCOTIZACION',

''As 'NPEDIDO',

'NC' AS 'TIPODOC',

T0.[DocNum] 'NDOCUMENTO',

T0.[DocDate] 'FECHA',
Sum(T1.Quantity) as 'CANTIDADFACT',

CASE WHEN T1.Currency = 'USD' THEN (T1.Price*T1.Rate)*-1 ELSE (T1.Price)*-1 END as


'PRECIO',

T0.DOCCUR AS 'MONEDA',

T0.DocRate AS 'TASA',

SUM(T1.DiscPrcnt)*-1 AS 'DESCUENTO',

SUM(T1.[LineTotal])*-1 as 'SUBTOTAL',

SUM(T1.[LineTotal]) *(T1.[VatPrcnt]/100)*-1 AS 'ITBIS',

SUM(T1.[LineTotal])+SUM(T1.[LineTotal]) *(T1.[VatPrcnt]/100)*-1 AS 'TOTAL',

0 AS 'VentaUltimos12meses',

0 AS 'VentaUltimos12mesesCant',

0 AS '#MesesVentasUltimo12meses',

T1.StockPrice as 'COSTO'

FROM ORIN T0

INNER JOIN RIN1 T1 ON T0.DocEntry=T1.DocEntry

INNER JOIN OIDC T2 ON T0.Indicator = T2.Code

INNER JOIN OSLP T3 ON T0.SlpCode = T3.SlpCode

INNER JOIN OCRD T4 ON T0.CardCode = T4.CardCode

INNER JOIN OITM T5 ON T1.ItemCode = T5.ItemCode

INNER JOIN OITB T6 ON T5.ItmsGrpCod = T6.ItmsGrpCod

INNER JOIN OCTG T7 ON T0.GroupNum = T7.GroupNum

LEFT JOIN OCRD T8 ON T5.CardCode = T8.CardCode

LEFT JOIN OCRY T9 ON T8.Country = T9.Code

LEFT JOIN [@SUBCATEGORIA] T10 ON T5.U_SUBCATEGORIA = T10.Code

LEFT JOIN OCRG T11 ON T4.GroupCode = t11.GroupCode


WHERE

T0.DocDate >= '01-01-2023' AND

T0.[DocSubType]<>'DN' AND

T4.[CardType]='C'

GROUP BY

T0.[DocNum],

T0.[DocDate],

T0.[CardCode],

T0.[CardName],

T0.[U_Tipo_NCF],

T1.[VatPrcnt],

T2.Name,

T3.SlpName,

T6.ItmsGrpNam,

T1.ItemCode,

T5.ItemName,

T1.Price,

T1.WhsCode,

T7.PymntGroup,

T1.Currency,

T1.Rate,

T1.DiscPrcnt,

T0.DOCCUR,

T10.Name,

CAST([U_GRUPOS] AS NVARCHAR(MAX)),

T11.GroupName,
T4.City,

T4.LicTradNum,

T3.SlpCode,

T0.DocRate,

T1.StockPrice

Union all

SELECT

T1.ItemCode AS 'ARTICULO',

T5.ItemName AS 'DESCRIPCION',

CAST(T5.U_GRUPOS AS NVARCHAR(MAX)) AS 'GRUPO',

T6.ItmsGrpNam AS 'CATEGORIA',

T10.Name AS 'SUBCATEGORIA',

Null AS 'TIENDA',

T0.CardCode AS 'CODCLIENTE',

T0.CardName AS 'NOMBRECLIENTE',

T11.GroupName AS 'CLASIFCLIENTE',

T4.City AS 'ZONA',

T4.LicTradNum AS 'RNCCEDULA',

T3.SlpCode AS 'CODVENDEDOR',

T3.SlpName AS 'NOMBREVENDEDOR',

CASE WHEN T2.Name LIKE '%Proyecto%' THEN 'Proyecto' ELSE 'Tienda' END AS
'TIPOVENTA',

'' AS 'CLASIFOVENTA',

T0.Docnum AS 'NCOTIZACION',

NULL AS 'FCOTIZACION',

'' AS 'NPEDIDO',
'Cotización' AS 'TIPODOC',

'' AS 'NDOCUMENTO',

T0.[DocDate] 'FECHA',

0 as 'CANTIDADFACT',

0 AS 'PRECIO',

T0.DOCCUR AS 'MONEDA',

T0.DocRate AS 'TASA',

0 AS 'DESCUENTO',

0 AS 'SUBTOTAL',

0 AS 'ITBIS',

0 AS 'TOTAL',

0 AS 'VentaUltimos12meses',

0 AS 'VentaUltimos12mesesCant',

0 AS '#MesesVentasUltimo12meses',

0 as 'COSTO'

FROM

OQUT T0

INNER JOIN QUT1 T1 ON T0.DocEntry = T1.DocEntry

INNER JOIN OIDC T2 ON T0.Indicator = T2.Code

INNER JOIN OSLP T3 ON T0.SlpCode = T3.SlpCode

INNER JOIN OCRD T4 ON T0.CardCode = T4.CardCode

INNER JOIN OITM T5 ON T1.ItemCode = T5.ItemCode

INNER JOIN OITB T6 ON T5.ItmsGrpCod = T6.ItmsGrpCod

INNER JOIN OCTG T7 ON T0.GroupNum = T7.GroupNum

LEFT JOIN OCRD T8 ON T5.CardCode = T8.CardCode

LEFT JOIN OCRY T9 ON T8.Country = T9.Code

LEFT JOIN [@SUBCATEGORIA] T10 ON T5.U_SUBCATEGORIA = T10.Code


LEFT JOIN OCRG T11 ON T4.GroupCode = T11.GroupCode

WHERE

T0.DocDate >= '01-01-2023' AND

T4.CardType = 'C'

AND

NOT EXISTS (

SELECT 1

FROM RDR1 T12

INNER JOIN ORDR T13 ON T12.DocEntry = T13.DocEntry

WHERE T12.BaseEntry = T0.DocEntry AND T12.BaseType = 23

GROUP BY

T0.DocNum,

T0.DocDate,

T0.CardCode,

T0.CardName,

T0.U_Tipo_NCF,

T1.VatPrcnt,

T2.Name,

T3.SlpName,

T6.ItmsGrpNam,

T1.ItemCode,

T5.ItemName,

T1.Price,

T1.WhsCode,

T7.PymntGroup,

T1.Currency,
T1.Rate,

T1.DiscPrcnt,

T0.DocCur,

T10.Name,

CAST(T5.U_GRUPOS AS NVARCHAR(MAX)),

T11.GroupName,

T4.City,

T4.LicTradNum,

T3.SlpCode,

T0.DocRate

UNION ALL

SELECT

T1.ItemCode AS 'ARTICULO',

T5.ItemName AS 'DESCRIPCION',

CAST(T5.U_GRUPOS AS NVARCHAR(MAX)) AS 'GRUPO',

T6.ItmsGrpNam AS 'CATEGORIA',

T10.Name AS 'SUBCATEGORIA',

Null AS 'TIENDA',

T0.CardCode AS 'CODCLIENTE',

T0.CardName AS 'NOMBRECLIENTE',

T11.GroupName AS 'CLASIFCLIENTE',

T4.City AS 'ZONA',

T4.LicTradNum AS 'RNCCEDULA',

T3.SlpCode AS 'CODVENDEDOR',
T3.SlpName AS 'NOMBREVENDEDOR',

CASE WHEN T2.Name LIKE '%Proyecto%' THEN 'Proyecto' ELSE 'Tienda' END AS
'TIPOVENTA',

'' AS 'CLASIFTIPOVENTA',

NULL AS 'NCOTIZACION',

NULL AS 'FCOTIZACION',

T0.DocNum AS 'NPEDIDO',

'Pedido' AS 'TIPODOC',

'' AS 'NDOCUMENTO',

T0.[DocDate] 'FECHA',

0 as 'CANTIDADFACT',

0 AS 'PRECIO',

T0.DOCCUR AS 'MONEDA',

T0.DocRate AS 'TASA',

0 AS 'DESCUENTO',

0 AS 'SUBTOTAL',

0 AS 'ITBIS',

0 AS 'TOTAL',

0 AS 'VentaUltimos12meses',

0 AS 'VentaUltimos12mesesCant',

0 AS '#MesesVentasUltimo12meses',

0 as 'COSTO'

FROM

ORDR T0

INNER JOIN RDR1 T1 ON T0.DocEntry = T1.DocEntry

INNER JOIN OIDC T2 ON T0.Indicator = T2.Code

INNER JOIN OSLP T3 ON T0.SlpCode = T3.SlpCode


INNER JOIN OCRD T4 ON T0.CardCode = T4.CardCode

INNER JOIN OITM T5 ON T1.ItemCode = T5.ItemCode

INNER JOIN OITB T6 ON T5.ItmsGrpCod = T6.ItmsGrpCod

INNER JOIN OCTG T7 ON T0.GroupNum = T7.GroupNum

LEFT JOIN OCRD T8 ON T5.CardCode = T8.CardCode

LEFT JOIN OCRY T9 ON T8.Country = T9.Code

LEFT JOIN [@SUBCATEGORIA] T10 ON T5.U_SUBCATEGORIA = T10.Code

LEFT JOIN OCRG T11 ON T4.GroupCode = T11.GroupCode

WHERE

T0.DocDate >= '01-01-2023' AND

T4.CardType = 'C'

AND

NOT EXISTS (

SELECT 1

FROM RDR1 T12

INNER JOIN ORDR T13 ON T12.DocEntry = T13.DocEntry

WHERE T12.BaseEntry = T0.DocEntry AND T12.BaseType = 17

GROUP BY

T0.DocNum,

T0.DocDate,

T0.CardCode,

T0.CardName,

T0.U_Tipo_NCF,

T1.VatPrcnt,

T2.Name,

T3.SlpName,
T6.ItmsGrpNam,

T1.ItemCode,

T5.ItemName,

T1.Price,

T1.WhsCode,

T7.PymntGroup,

T1.Currency,

T1.Rate,

T1.DiscPrcnt,

T0.DocCur,

T10.Name,

CAST(T5.U_GRUPOS AS NVARCHAR(MAX)),

T11.GroupName,

T4.City,

T4.LicTradNum,

T3.SlpCode,

T0.DocRate

UNION ALL

SELECT

T100.ARTICULO,

T100.DESCRIPCION,

T100.GRUPO,

T100.CATEGORIA,

T100.SUBCATEGORIA,
T100.TIENDA,

T100.CODCLIENTE,

T100.NOMBRECLIENTE,

T100.CLASIFCLIENTE,

T100.ZONA,

T100.RNCCEDULA,

T100.CODVENDEDOR,

T100.NOMBREVENDEDOR,

T100.TIPOVENTA,

T100.CLASIFTIPOVENTA,

T100.NCOTIZACION,

T100.FCOTIZACION,

T100.NPEDIDO,

T100.TIPODOC,

T100.NDOCUMENTO,

T100.FECHA,

T100.CANTIDADFACT,

T100.PRECIO,

T100.MONEDA,

T100.TASA,

T100.DESCUENTO,

T100.SUBTOTAL,

T100.ITBIS,

T100.TOTAL,

T100.VentaUltimos12meses,

T100.VentaUltimos12mesesCant,

T100.#MesesVentasUltimo12meses,

T100.COSTO
FROM

(SELECT

T90.ItemCode AS 'ARTICULO',

T92.ItemName AS 'DESCRIPCION',

CAST(T92.U_GRUPOS AS NVARCHAR(MAX)) AS 'GRUPO',

'' AS 'CATEGORIA',

T92.U_SUBCATEGORIA AS 'SUBCATEGORIA',

'' AS 'TIENDA',

'' AS 'CODCLIENTE',

'' AS 'NOMBRECLIENTE',

'' AS 'CLASIFCLIENTE',

'' AS 'ZONA',

'' AS 'RNCCEDULA',

'' AS 'CODVENDEDOR',

'' AS 'NOMBREVENDEDOR',

'' AS 'TIPOVENTA',

'' AS 'CLASIFTIPOVENTA',

'' AS 'NCOTIZACION',

'' AS 'FCOTIZACION',

'' AS 'NPEDIDO',

'' AS 'TIPODOC',

'' AS 'NDOCUMENTO',

'' 'FECHA',

0 as 'CANTIDADFACT',

0 AS 'PRECIO',
'' AS 'MONEDA',

0 AS 'TASA',

0 AS 'DESCUENTO',

0 AS 'SUBTOTAL',

0 AS 'ITBIS',

0 AS 'TOTAL',

SUM(T90.LineTotal) AS 'VentaUltimos12meses',

SUM(T90.Quantity) AS 'VentaUltimos12mesesCant',

COUNT(DISTINCT (YEAR(T91.DocDate)*100 + MONTH(T91.DocDate))) AS


'#MesesVentasUltimo12meses',

0 as 'COSTO'

FROM

INV1 T90

INNER JOIN OINV T91 ON T90.DocEntry = T91.DocEntry

INNER JOIN OITM T92 ON T90.ItemCode = T92.ItemCode

INNER JOIN OITB T93 ON T92.ItmsGrpCod = T93.ItmsGrpCod

WHERE

T91.CANCELED = 'N' AND

T91.DocDate >= '01-01-2023'

GROUP BY

T90.ItemCode,

T92.ItemName,

CAST(T92.U_GRUPOS AS NVARCHAR(MAX)),

T92.U_SUBCATEGORIA

uNION aLL
SELECT

T90.ItemCode AS 'ARTICULO',

T92.ItemName AS 'DESCRIPCION',

CAST(T92.U_GRUPOS AS NVARCHAR(MAX)) AS 'GRUPO',

'' AS 'CATEGORIA',

T92.U_SUBCATEGORIA AS 'SUBCATEGORIA',

'' AS 'TIENDA',

'' AS 'CODCLIENTE',

'' AS 'NOMBRECLIENTE',

'' AS 'CLASIFCLIENTE',

'' AS 'ZONA',

'' AS 'RNCCEDULA',

'' AS 'CODVENDEDOR',

'' AS 'NOMBREVENDEDOR',

'' AS 'TIPOVENTA',

'' AS 'CLASIFTIPOVENTA',

'' AS 'NCOTIZACION',

'' AS 'FCOTIZACION',

'' AS 'NPEDIDO',

'' AS 'TIPODOC',

'' AS 'NDOCUMENTO',

'' 'FECHA',

0 as 'CANTIDADFACT',

0 AS 'PRECIO',

'' AS 'MONEDA',

0 AS 'TASA',

0 AS 'DESCUENTO',

0 AS 'SUBTOTAL',
0 AS 'ITBIS',

0 AS 'TOTAL',

SUM(T90.LineTotal)* -1 AS 'VentaUltimos12meses',

SUM(T90.Quantity)* -1 AS 'VentaUltimos12mesesCant',

(COUNT(DISTINCT (YEAR(T91.DocDate)*100 + MONTH(T91.DocDate)))) AS


'#MesesVentasUltimo12meses',

0 as 'COSTO'

FROM

RIN1 T90

INNER JOIN ORIN T91 ON T90.DocEntry = T91.DocEntry

INNER JOIN OITM T92 ON T90.ItemCode = T92.ItemCode

INNER JOIN OITB T93 ON T92.ItmsGrpCod = T93.ItmsGrpCod

WHERE

T91.CANCELED = 'N' AND

T91.DocDate >= '01-01-2023'

GROUP BY

T90.ItemCode,

T92.ItemName,

CAST(T92.U_GRUPOS AS NVARCHAR(MAX)),

T92.U_SUBCATEGORIA) T100

GO

You might also like