【发布时间】:2016-10-30 09:12:46
【问题描述】:
我想为
创建一个存储过程-
NStatusFlag不应等于5和14的文档
与
如果文档与他们在一起超过 3 天,它还应该向相应的用户发送提醒,如果超过 5 天,那么它也应该将它发送给其上级 p>
日期应使用表格的U_datetime 和系统中的SYSTEM 日期计算。
我的NStatusFlag 建议打开所有文件。
我在下面试过了。
ALTER PROCEDURE GET_INWARD_REMINDER_REPORT
AS
BEGIN
Select * from inward_doc_tracking_trl
where NStatus_flag <> 5
and NStatus_flag <> 14
END
GO
所以我得到了所有打开的文件,如下所示
但我不知道如何通过与日期进行比较来获取所有用户并发送提醒。
另外,我将从inward_doc_tracking_hdr 表中获取分配给文档的用户名。
注意 inward_doc_tracking_hdr 表 mkey 与 inward_doc_tracking_trl 表中的 ref_mkey 相关。
请帮帮我。
更新
我从这个查询中得到所有用户
ALTER PROCEDURE GET_INWARD_REMINDER_REPORT
AS
BEGIN
Select distinct a.mkey, b.mkey, a.first_name + ' ' + a.last_name from user_mst a
inner join inward_doc_tracking_hdr b
on a.mkey = b.User_Id
END
GO
更新以获得 SEnior 名称
select * from inward_doc_tracking_hdr order by mkey desc -- here I get To_User
select * from user_mst where mkey = 187 -- here I get To_User
select Reporting_To,* from emp_mst where mkey = 122 -- here I get Senior
【问题讨论】:
-
要获取用户,您需要使用连接并连接到用户表。要获取具有正确日期的记录,您需要在日期字段上使用
where。您需要将其与当前日期进行比较(使用函数getdate())并且您需要使用dateadd函数将其向后移动x 天 -
@Nick.McDermaid:感谢您的逻辑。如果您为它发布解决方案,那就太好了。如果你想从我这里得到什么,也请告诉我。
-
@Nick.McDermaid:查看我尝试过的更新。现在我被困在如何获得来自
inward_doc_tracking_trl表的Nstatus_flag的各个条件。
标签: sql sql-server stored-procedures sql-server-2005