使用自动编号更新列
Update column with autonumber
我需要根据不包含连续日期的工作日历计算出每个人何时完成任务。我知道两个 tables T1
中的数据
Name DaysRemaining Complete
Joe 3
Mary 2
和T2
Date Count
6/1/2018
6/8/2018
6/10/2018
6/15/2018
现在,如果 Joe 还剩 3 天,我想在 T2 中从今天开始向前计算 3 条记录,并且 return 日期到“完成”列。如果今天是 6/1/2018,我希望更新查询 return 6/10/2018 到 Joe 的完整列。
我的想法是,我可以使用从今天开始的查询每天更新 T2.count,然后自动递增。之后我可以在 DaysRemaining 和 Count 上加入 T1 和 T2。我可以做到,但还没有找到使用自动增量更新 t2.count 的有效解决方案。有更好的主意吗?我正在使用链接共享点 table,因此每次都创建一个新字段不是一个选项。
我认为这会起作用:
select t1.*, t2.date
from t1, t2 -- ms access doesn't support cross join
where t1.daysremaining = (select count(*)
from t2 as tt2
where tt2.date <= t2.date and tt2.date > now()
);
这是一个昂贵的查询,但在几乎任何其他数据库中都更容易表达和更高效。
我需要根据不包含连续日期的工作日历计算出每个人何时完成任务。我知道两个 tables T1
中的数据Name DaysRemaining Complete
Joe 3
Mary 2
和T2
Date Count
6/1/2018
6/8/2018
6/10/2018
6/15/2018
现在,如果 Joe 还剩 3 天,我想在 T2 中从今天开始向前计算 3 条记录,并且 return 日期到“完成”列。如果今天是 6/1/2018,我希望更新查询 return 6/10/2018 到 Joe 的完整列。
我的想法是,我可以使用从今天开始的查询每天更新 T2.count,然后自动递增。之后我可以在 DaysRemaining 和 Count 上加入 T1 和 T2。我可以做到,但还没有找到使用自动增量更新 t2.count 的有效解决方案。有更好的主意吗?我正在使用链接共享点 table,因此每次都创建一个新字段不是一个选项。
我认为这会起作用:
select t1.*, t2.date
from t1, t2 -- ms access doesn't support cross join
where t1.daysremaining = (select count(*)
from t2 as tt2
where tt2.date <= t2.date and tt2.date > now()
);
这是一个昂贵的查询,但在几乎任何其他数据库中都更容易表达和更高效。