Ayuda consulta SQL 2005
Publicado por Jorge Martinez (1 intervención) el 25/07/2007 19:10:20
Hola amigos necesito ayuda con una consulta de SQL, esta consulta esta en un store procedure de SQL 2005 y afecta a una base de datos de SAP Business One, permite determinar el tipo de descuento que le corresponde a una factura segun el litraje que suman los articulos que se venden, solo que no entiendo como la afectaron, ademas necesito agregar una consulta mas que verifique que se trata de ciertos articulos y que no ejecute este procedimiento en caso de que se elijan esos articulos
Procedimiento:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[CATEGORIAS_CUST]
@DocNum nvarchar(128) = NULL ,
@Customer nvarchar(128) = NULL
AS
BEGIN
declare @xval AS nvarchar(25)
declare @tp as varchar(5)
select @tp = dbo.ORDRF(@DocNum)
SELECT @xval= 'True' FROM dbo.OCRD AS t1
WHERE (CardType = 'C') AND (ListNum > 1) AND (CardCode = @Customer)
if ISNULL (@xval,'bad')='bad' and @tp='OK' AND dbo.ORDRPK(@DocNum)='NO'
BEGIN
SELECT CASE
WHEN FLOOR(SUM(dbo.RDR1.U_Cantidad)) BETWEEN 0 AND 44 THEN 0
WHEN FLOOR(SUM(dbo.RDR1.U_Cantidad)) BETWEEN 45 AND 89 THEN 20
WHEN FLOOR(SUM(dbo.RDR1.U_Cantidad)) BETWEEN 90 AND 150 THEN 20.75
WHEN FLOOR(SUM(dbo.RDR1.U_Cantidad)) > 151 THEN 22 END AS des
FROM dbo.ORDR INNER JOIN
dbo.RDR1 ON dbo.ORDR.DocEntry = dbo.RDR1.DocEntry
WHERE (dbo.ORDR.DocNum = @DocNum)
END
END
Procedimiento:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[CATEGORIAS_CUST]
@DocNum nvarchar(128) = NULL ,
@Customer nvarchar(128) = NULL
AS
BEGIN
declare @xval AS nvarchar(25)
declare @tp as varchar(5)
select @tp = dbo.ORDRF(@DocNum)
SELECT @xval= 'True' FROM dbo.OCRD AS t1
WHERE (CardType = 'C') AND (ListNum > 1) AND (CardCode = @Customer)
if ISNULL (@xval,'bad')='bad' and @tp='OK' AND dbo.ORDRPK(@DocNum)='NO'
BEGIN
SELECT CASE
WHEN FLOOR(SUM(dbo.RDR1.U_Cantidad)) BETWEEN 0 AND 44 THEN 0
WHEN FLOOR(SUM(dbo.RDR1.U_Cantidad)) BETWEEN 45 AND 89 THEN 20
WHEN FLOOR(SUM(dbo.RDR1.U_Cantidad)) BETWEEN 90 AND 150 THEN 20.75
WHEN FLOOR(SUM(dbo.RDR1.U_Cantidad)) > 151 THEN 22 END AS des
FROM dbo.ORDR INNER JOIN
dbo.RDR1 ON dbo.ORDR.DocEntry = dbo.RDR1.DocEntry
WHERE (dbo.ORDR.DocNum = @DocNum)
END
END
Valora esta pregunta


0