다음과 같은 기능이 있습니다.
ALTER FUNCTION [dbo].[ActualWeightDIMS]
(
-- Add the parameters for the function here
@ActualWeight int,
@Actual_Dims_Lenght int,
@Actual_Dims_Width int,
@Actual_Dims_Height int
)
RETURNS varchar(50)
AS
BEGIN
DECLARE @ActualWeightDIMS varchar(50);
--Actual Weight
IF (@ActualWeight is not null)
SET @ActualWeightDIMS = @ActualWeight;
--Actual DIMS
IF (@Actual_Dims_Lenght is not null) AND
(@Actual_Dims_Width is not null) AND (@Actual_Dims_Height is not null)
SET @ActualWeightDIMS= @Actual_Dims_Lenght + 'x' + @Actual_Dims_Width + 'x' + @Actual_Dims_Height;
RETURN(@ActualWeightDIMS);
END
하지만 사용하려고 할 때 "varchar 값 'x'를 데이터 유형 int로 변환 할 때 변환에 실패했습니다."라는 오류가 발생했습니다. 다음 select 문을 사용할 때
select
BA_Adjustment_Detail.ID_Number [ID_Number],
BA_Adjustment_Detail.Submit_Date [Submit_Date],
BA_Category.Category [category],
BA_Type_Of_Request.Request [Type_Of_Request],
dbo.ActualWeightDIMS(BA_Adjustment_Detail.ActualWeight,BA_Adjustment_Detail.Actual_Dims_Lenght,BA_Adjustment_Detail.Actual_Dims_Width,BA_Adjustment_Detail.Actual_Dims_Height) [Actual Weight/DIMS],
BA_Adjustment_Detail.Notes [Notes],
BA_Adjustment_Detail.UPSCustomerNo [UPSNo],
BA_Adjustment_Detail.TrackingNo [AirbillNo],
BA_Adjustment_Detail.StoreNo [StoreNo],
BA_Adjustment_Detail.Download_Date [Download_Date],
BA_Adjustment_Detail.Shipment_Date[ShipmentDate],
BA_Adjustment_Detail.FranchiseNo [FranchiseNo],
BA_Adjustment_Detail.CustomerNo [CustomerNo],
BA_Adjustment_Detail.BillTo [BillTo],
BA_Adjustment_Detail.Adjustment_Amount_Requested [Adjustment_Amount_Requested]
from BA_Adjustment_Detail
inner join BA_Category
on BA_Category.ID = BA_Adjustment_Detail.CategoryID
inner join BA_Type_Of_Request
on BA_Type_Of_Request.ID = BA_Adjustment_Detail.TypeOfRequestID
내가 원하는 것은 ActualWeight가 null이 아닌 경우 "Actual Weight / DIMS"에 대한 ActualWeight를 반환하거나 Actual_Dims_Lenght, Width 및 Height를 사용하는 것입니다.
DIMS 인 경우 출력을 LenghtxWidhtxHeight (15x10x4)로 포맷하고 싶습니다. ActualWeight, Adcutal_Dims_Lenght, Width 및 Height는 모두 int (정수) 값이지만 "Actual Weight / DIMS"의 출력은 varchar (50)이어야합니다.
내가 어디에서 잘못하고 있습니까?
감사
편집 : 사용자는 ASP.net 페이지에서 Weight 또는 DIMS 만 선택할 수 있으며 사용자가 DIMS를 선택한 경우 길이, 너비 및 높이를 제공해야합니다. 그렇지 않으면 ASP.net 페이지에서 오류가 발생합니다. SQL 측에서 걱정해야합니까?