Saya memiliki fungsi berikut
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
tetapi ketika saya mencoba menggunakannya, saya mendapat pesan kesalahan berikut "Konversi gagal saat mengonversi nilai varchar 'x' ke tipe data int." ketika saya menggunakan pernyataan pilih berikut
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
Yang ingin saya lakukan adalah jika ActualWeight tidak null maka kembalikan ActualWeight untuk "Actual Weight / DIMS" atau gunakan Actual_Dims_Lenght, Width dan Height.
Jika DIMS maka saya ingin memformat output menjadi LenghtxWidhtxHeight (15x10x4). ActualWeight, Adcutal_Dims_Lenght, Width dan Height semuanya adalah nilai int (integer) tetapi output untuk "Actual Weight / DIMS" harus varchar (50).
Di mana saya salah?
terima kasih
edit: Pengguna hanya dapat memilih salah satu Berat atau DIMS pada halaman ASP.net dan jika DIMS dipilih pengguna maka mereka harus menyediakan Panjang, Lebar dan Tinggi. Jika tidak, itu akan memunculkan kesalahan pada halaman ASP.net. Haruskah saya mengkhawatirkannya di sisi sql?