Tôi có chức năng sau
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
nhưng khi tôi cố gắng sử dụng nó, tôi gặp lỗi sau "Chuyển đổi không thành công khi chuyển đổi giá trị varchar 'x' thành kiểu dữ liệu int." khi tôi sử dụng câu lệnh chọn sau
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
Điều tôi muốn làm là nếu ActualWeight không rỗng thì hãy trả lại ActualWeight cho "Actual Weight / DIMS" hoặc nếu không thì sử dụng Actual_Dims_Lenght, Width và Height.
Nếu đó là DIMS thì tôi muốn định dạng đầu ra thành LenghtxWidhtxHeight (15x10x4). ActualWeight, Adcutal_Dims_Lenght, Width và Height đều là giá trị int (integer) nhưng đầu ra cho "Actual Weight / DIMS" phải là varchar (50).
Tôi hiểu sai ở đâu?
cảm tạ
chỉnh sửa: Người dùng chỉ có thể chọn Cân nặng hoặc DIMS trên trang ASP.net và nếu người dùng đã chọn DIMS thì họ phải cung cấp Chiều dài, Chiều rộng và Chiều cao. Nếu không, nó sẽ gây ra lỗi trên trang ASP.net. Tôi có nên lo lắng về nó ở phía sql không?