Funciones tipo tabla:
CREATE FUNCTION [dbo].[Fun_DameDatosFactura] (@IdFactura T_Id_Factura=NULL)
RETURNS @RET TABLE (Anyo int, Mes int,IdFactura int, IdArticulo varchar(50),Cant decimal (38,10),PVP Float, Precio_Total Float)
-- funcion para devolver datos de factura
BEGIN
Declare @Tab_Facts TABLE (IdFactura int)
-- rellenar @Tab_Facts
IF @IdFactura IS NOT NULL
INSERT INTO @Tab_Facts VALUES (@IdFactura)
ELSE
INSERT INTO @Tab_Facts (IdFactura)
SELECT IdFactura FROM Facturas_Cli_Cab
-- rellenar tabla retorno
INSERT INTO @RET (Anyo,Mes,IdFactura,IdArticulo,Cantidad,PVP,Precio_Total)
SELECT YEAR(F.FechaFact),
MONTH(F.FechaFact),
F.IdFactura,
l.IdArticulo,
l.Cantidad,
l.Precio_EURO * (1-L.Descuento/100.0) * (1-F.Descuento/100.0) * (1-F.DescuentoPP/100.0) PVP,
L.Cantidad * L.Precio_EURO * (1-L.Descuento/100.0) * (1-F.Descuento/100.0) * (1-F.DescuentoPP/100.0) Precio_Total
FROM @Tab_Facts T INNER JOIN Pedidos_Cli_Lineas L ON T.IdFactura=L.IdFactura
INNER JOIN Facturas_Cli_Cab F WITH (NOLOCK) ON L.IdFactura=F.IdFactura
-- retorno<
RETURN
END
-- llamada
SELECT * FROM dbo.[Fun_DameDatosFactura](default)
-- llamada
SELECT * FROM Facturas_cli_cab F CROSS APPLY dbo.[Fun_DameDatosFactura](F.IdFactura) lFun
¿Le ha sido útil este artículo?
¡Qué bien!
Gracias por sus comentarios
¡Sentimos mucho no haber sido de ayuda!
Gracias por sus comentarios
Sus comentarios se han enviado
Agradecemos su esfuerzo e intentaremos corregir el artículo