我有两张桌子
1)ActivityMaster
ActivityId,ActivityDesc,RegisteredDate
2)ApprovalConfig
ApprovalId,用户ID,ActivityId,ApprovalDate
两个表都有共同的ActivityId。
在ActivityMaster中注册任何活动后,它将在30天后重新发生
1)活动应在30天后显示给用户,并且在批准后不应出现,直到下一个批准日期到来(即30天)
我正在使用下面的查询逻辑,但它没有按预期工作。
Select
case
when
DateAdd(dd,DATEDIFF(MONTH, RegisteredDate,GETDATE()) *30,RegisteredDate) < (SELECT ISNULL(MAX(ApprovalDate),0) FROM ApprovalConfig C WHERE C.ActivityId= ActivityId)
then 0 -- Hide Approval Link
else 1 -- Show Approval Link
end As LinkShow
from ActivityMaster
E.g 用户在2017年1月5日注册活动,每隔30天就可以看到下一位用户进行审批。
1)2017年2月6日,2017年3月6日,下一位用户可以看到活动
2)一旦活动获得批准,它将不会显示在仪表板中 如果用户于2017年2月7日批准,则在下一个批准日期到2017年3月6日之前,活动将不可见