我有3表
1用于注册网站用户。2是为了节省投诉
稍后我将讨论3。
当收到投诉时,将其分配给系统用户,即投诉表中的AssignToUser_ID。
投诉:
现在,如果用户想查看投诉,那么应该只显示那些分配给他的投诉,而不是其他的,这是我已经解决的部分,但是.
现在我将讨论映射表。
制图:
这张表用于存储指定的系统用户,即如果投诉被分配给我,而我也决定将其分配给另一个用户,这样他也可以查看实际分配给我的投诉,那么就有可能了。现在我已经解决了这个问题,但问题是,如果我以指定用户身份登录,那么我可以查看分配给实际用户的投诉,但如果我以原始用户身份登录,则无法查看指定的投诉。
我的尝试:
CREATE Procedure [dbo].[usp_getAllMarkedComplaints]
(
@SystemUser_ID int
)
AS
Begin
if exists (Select * from mapping where systemuser_id = @SystemUser_ID )
begin
Select * From dbo.Complaints Comp
Where (Comp.AssignToUser_ID IN (select assigntouser_id from mapping where systemuser_id = @SystemUser_ID)) AND
Comp.ComplaintStatus_ID <3
end
else
begin
Select * From dbo.Complaints Comp
Where (Comp.AssignToUser_ID = @SystemUser_ID) AND
Comp.ComplaintStatus_ID <3
end
End发布于 2017-03-31 15:51:14
您可以使用@SystemUser_ID作为systemuser_id和AssignToUser_ID,我认为它们是两个不同的概念,它们都有自己的增量系统。您的AssignToUser_ID n°1可能与systemuser_id n°1不同。
您需要根据用户类型(指定或系统)创建两个不同的条目。
有一条路要走:
CREATE Procedure [dbo].[usp_getAllMarkedComplaints]
(
@user_ID int,
@user_type char(3)
)
AS
Begin
if @user_type = 'SYS'
begin
Select * From dbo.Complaints Comp
Where Comp.AssignToUser_ID IN (select assigntouser_id
from mapping
where systemuser_id = @user_ID)
AND Comp.ComplaintStatus_ID <3
end
if @user_type = 'ASG'
begin
Select * From dbo.Complaints Comp
Where Comp.AssignToUser_ID = @user_ID
AND Comp.ComplaintStatus_ID <3
end
End另一种方法是创建两个不同的存储过程。
https://stackoverflow.com/questions/43144623
复制相似问题