【发布时间】:2020-12-14 20:49:06
【问题描述】:
重点是更新**(从 0 更改为 1)** 名册表(第 1 周,第 2 周,...。第 16 周)来自 MHS 的 John doe 使用他的电话号码登记。 apptable 捕获创建日期列中的签入日期,该日期应等于周日期表中的第 1 周日期。
如果 John doe 尝试从 JHS 签入,则名册表不应更新。 请参阅图像以获得清晰和详细信息 当前状态:enter image description here 预期结果:enter image description here
名册表(当前状态)
UID Name School Participant1phone Participant2phone Week1 Week2
1 John Doe MHS 8324444444 8325555555 0 0
2 Nia Long JHS 6785555555 6784444444 0 0
星期表:
SchoolUID School Week1 Week2
1 MHS 9/7/2020 9/14/2020
2 JHS 9/8/2020 9/15/2020
名册表(签到后的预期结果)
UID Name School Participant1phone Participant2phone Week1 Week2
1 John Doe MHS 8324444444 8325555555 1 1
2 Nia Long JHS 6785555555 6784444444 1 1
应用表
ID Userphonenumber Created on
1 8324444444 9/7/2020
2 6785555555 9/15/2020
这是目前的sql查询:
create procedure updtroster
AS
begin
update roster
set roster.week = 1
from apptable a
left join roster on a.UserPhoneNumber = roster.Participant1phone
end;
【问题讨论】:
-
请您与我们分享您使用什么数据库?
-
我猜是 SQL Server。但也可能是 Sybase。
-
轻松为您提供帮助,向我们展示一些示例表数据和预期结果(格式文本,无图像。)并首先查看minimal reproducible example。
-
请在代码问题中给出minimal reproducible example--cut & paste & runnable code,包括最小的代表性示例输入为代码;期望和实际输出(包括逐字错误消息);标签和版本;明确的规范和解释。给出尽可能少的代码,即您显示的代码可以通过您显示的代码扩展为不正常的代码。 (调试基础。)对于包含 DBMS 和 DDL(包括约束和索引)和输入为格式化为表的代码的 SQL。 How to Ask 暂停总体目标的工作,将代码砍到第一个表达式,没有给出你期望的内容,说出你的期望和原因。
标签: sql join stored-procedures datatable sql-update