아래 코드에서 함수가 batchrelease 수량을 반환하는 쿼리와 함수가 있습니다. select sqlquery에 함수가 포함되어 있습니다. "프로 시저 또는 함수 dbo.GetBatchReleaseQuantity 너무 많은 인수가 지정되었습니다. "이 문제를 극복하도록 도와주십시오.함수에 SQL 쿼리에 너무 많은 인수가 지정되어 있습니다
SELECT p.ProductID,
p.ProductName,
ISNULL((SELECT ISNULL(CurrentStock,0.00)
FROM Productstatus PS
WHERE PS.ProductID =p.ProductID
AND PS.LocationID = 1
AND PS.StatusDateTime= '2014-08-27'
and PS.productid=p.productid),0) OpeningStockQuantity,
ISNULL((SELECT ISNULL((CurrentStock*PS.UnitPrice),0.00)
FROM Productstatus PS
WHERE PS.ProductID =p.ProductID
AND PS.LocationID = 1
AND PS.StatusDateTime= '2014-08-27'
and PS.productid=p.productid),0) OpeningStockValue,
ISNULL((SELECT ISNULL(CurrentStock,0.00)
FROM Productstatus PS
WHERE PS.ProductID =p.ProductID
AND PS.LocationID = 1
AND PS.StatusDateTime= '2014-08-27'
and PS.productid=p.productid),0) ClosingStockQuantity,
ISNULL((SELECT ISNULL((CurrentStock*PS.UnitPrice),0.00)
FROM Productstatus PS
WHERE PS.ProductID =p.ProductID
AND PS.LocationID = 1
AND PS.StatusDateTime= '2014-08-27'
and PS.productid=p.productid),0) ClosingStockValue,
(SELECT dbo.GetBatchReleaseQuantity(1,2, '2014-01-27 00:00:00', '2014-11-27 23:59:59') AS BatchReleaseQuantity
FROM Productstatus PS
WHERE
PS.LocationID = 1
and PS.productid=p.productid AND PS.StatusDateTime > = '2014-01-27 00:00:00' AND PS.StatusDateTime <= '2014-10-27 23:59:59')
-- ISNULL((SELECT ISNULL((dbo.GetBatchReleaseQuantity(1,2, '2014-01-27 00:00:00', '2014-11-27 23:59:59')),0.00)
--FROM Productstatus PS
--WHERE PS.ProductID =p.ProductID
-- AND PS.LocationID = 1
-- AND PS.StatusDateTime= '2014-08-27'
-- and PS.productid=p.productid),0) Batchout
FROM Product P
--- SELECT dbo.GetBatchReleaseQuantity(@i_LocationID,P.ProductID,@i_Date,@i_Date) From Product P
LEFT OUTER JOIN LocationProductMap LMP ON LMP.ProductID=P.ProductID
WHERE LMP.ProductInFlow=1
기능
ALTER FUNCTION [dbo].[GetBatchReleaseQuantity]
()
RETURNS int
--WITH ENCRYPTION
AS
BEGIN
DECLARE @i_LocationID VARCHAR(50)
DECLARE @i_ProductID INT
DECLARE @i_StartDate VARCHAR(50)
DECLARE @i_EndDate VARCHAR(50)
RETURN (SElECT SUM(BatchReleaseQuantity) AS BatchReleaseQuantity From BatchReleaseDetails BRD
LEFT OUTER JOIN BatchRelease BR ON BR.BatchReleaseID=BRD.BatchReleaseID
Where [email protected]_ProductID AND [email protected]_LocationID AND BRD.CreatedOn>[email protected]_StartDate AND BRD.CreatedOn<[email protected]_EndDate)
내게는 함수의 변수 decs가 잘못된 위치에있는 것처럼 보입니다. – Fred