我在下面有一个查询工作。我的问题是我似乎无法改变它所以它每次更新可用性表中的LessonTaken字段,除非StudentID = 0。因此,如果studentID<>,则仅希望它更新字段0;
UPDATE Availability SET LessonTaken = 'Y'
WHERE (
SELECT LessonID
FROM Lesson
WHERE Availability.StudentID = Lesson.StudentID
);
表格如下:
状况:
AvailabilityID 学生卡 开始时间 时间结束 LessonTaken NoOfFrees
课:
LessonID 学生卡 开始时间 时间结束 DAYOFWEEK LessonPaid。
我有一个查询,选择具有最少frees的学生(选择DayOfWeek,StartTime,EndTime)并将其插入到相应字段的LessonTable中。这是一个时间表计划。我希望这很清楚,非常感谢:)。
答案 0 :(得分:1)
这是针对T-SQL,使用join
update avail
set LessonTaken = 'Y'
from Availability avail
join Lesson less on avail.StudentID = less.StudentID
where avail.StudentID <> 0
祝你好运
答案 1 :(得分:1)
添加您想要帮助的条件吗?
UPDATE Availability
SET LessonTaken = 'Y'
WHERE Availability.studentID <> 0 AND
(SELECT LessonID
FROM Lesson
WHERE Availability.StudentID = Lesson.StudentID
);
答案 2 :(得分:0)
这可能听起来很傻,但你试过了吗?
UPDATE Availability SET LessonTaken = 'Y'
WHERE (SELECT LessonID
FROM Lesson
WHERE Availability.StudentID = Lesson.StudentID
AND Lesson.StudentID != 0
);
??希望它有所帮助!