0

CATEGORY ID渡されたものに基づいて詳細をフェッチするストアド プロシージャを作成しています。渡されたものがCATEGORY IDnull でないCATEGORY ID場合は、に基づいてCATEGORY IDフェッチしています。この問題。CATEGORY ID3

私の手順は次のようなものです:

CREATE procedure [dbo].[SearchAssetdetails]
(
@assetCategory as int = null,
@assetType as int = null,
@assetDescription as nvarchar(200) = null,
@purchaseDate as datetime = null,
@validUpto as datetime = null)
as
begin
select ad.CategoryID,ad.AssetTypeId,ad.AssetDetailId,ad.AssetDescription,ad.Cost,ad.IsOwn,ad.LastModifiedby,ad.LastModifiedDatetime,ad.Location,ad.NoofLicences,ad.PurchaseDate,ad.SerialNumber,ad.ValidUpto,ad.VendorId,ad.Version,ad.WarrantyExpirationDate
 from AssetDetails ad where      
(ad.AssetDescription like (case when @assetDescription is not null then  '%'+@assetDescription+'%' else ad.AssetDescription end)        
and ad.CategoryID=(case when @assetCategory is not null then @assetCategory else ad.CategoryID   end)        
and ad.AssetTypeId=(case when @AssetType is not null then @AssetType else ad.AssetTypeId end)        
and ad.PurchaseDate=(case when @purchaseDate is not null then @purchaseDate else ad.PurchaseDate end)        
and ad.ValidUpto=(case when @validUpto is not null then @validUpto else ad.ValidUpto end)
 )  end;
4

1 に答える 1

0

where 句の条件により、AND他のパラメーターへの入力が入力と一致しない可能性がありますcategory idnull、 に置き換えられ3ます。

まず、他のパラメーターを持つレコードを選択し、それらのいずれかがカテゴリ ID 3 のレコードをフェッチするかどうかを確認します。データの全体像を把握するために、カテゴリ ID が 3 のレコードを表示することをお勧めします。

そうでなければ、私が信じているエラーはありません。

于 2012-10-22T14:09:06.357 に答える