Select * from YogaTimeTable;
Delete from YogaTimeTable
Where yogaID in (select ytt.YogaID, yr.roomCapacity * yt.classPrice as grossProfit,
ytt.duration / 60 as durationInHours
from YogaRooms yr, YogaTypes yt, YogaTimeTable ytt
where ytt.RoomNum = yr.roomNum and
grossProfit – (yr.CostPerHour * durationInHours) < 200);
Select * from YogaTimeTable;我不知道我的代码出了什么问题,但每当我尝试运行它时,它都会显示-附近的语法不正确。目标是删除任何利润低于200美元的类别。表也包括在内。谢谢

发布于 2017-04-14 22:35:48
您有其他字符,称为破折号(U+2013) –,但您需要连字符-(U+002D) -。
发布于 2017-04-15 01:08:48
DELETE语句中的子查询中存在一些错误-在WHERE子句中看不到列别名。以这种方式重写此子查询-
SELECT
ytt.YogaID
FROM
YogaRooms yr, YogaTypes yt, YogaTimeTable ytt
WHERE
ytt.RoomNum = yr.roomNum
AND (yr.roomCapacity * yt.classPrice – (yr.CostPerHour * ytt.duration / 60) < 200检查条件。然后,如果它是正确的,将这个查询放入DELETE语句。
https://stackoverflow.com/questions/43413601
复制相似问题