我在数据库中有两个表。一个是Group
表,另一个是Status
表。两者都有GroupId常见。所以我会内心加入他们我会得到所有的记录。状态表在表中有状态列,该状态列有6个值,如
1) active
2) not active
3) pending
4) approved
5) placed
6) unplaced
现在所有记录都有一个与状态列相关的列。
我需要一个存储过程来获取记录,如果它是活动的,我们将获得内部连接两个表的记录,如果它被放置状态,我们将获得放置的列记录等等,如果用户没有选择任何我们将获得所有记录。我将绑定到下拉列表,这些值将显示在前端的gridview中。
这是我的代码:
create procedure Sp_SelectedStatus
@Status varchar(20) as
Begin
if(@Status = 'Active')
Begin
Select A.GroupName , B.Brand , B.Model ,
B.SerialNo , B.Status , B.AddedOn
from GroupDetails as A
inner join DeviceDetails as B
on A.GroupId = B.GroupId
where Status = 'Active'
End
End
答案 0 :(得分:0)
根据提供的信息,这可能是一个可能的存储过程。 "如果用户没有选择任何内容,我们将获得所有记录" - 将@Status变量默认为null,这使它成为可选项,然后查询将返回所有记录。
create procedure dbo.usp_GetStatus
@Status varchar(20) = null
AS
SET NOCOUNT ON;
Select G.GroupName, D.Brand, D.Model, D.SerialNo, D.[Status], D.AddedOn
from GroupDetails as G inner join
DeviceDetails as D on G.GroupId = D.GroupId
where D.Status = IsNull(@Status, D.Status);