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