我有2张桌子
表1详细列出了表2中的分配进度
表1.分配
ID | Class | Content | StudentID | LastReviewDate
..............
3133 GC ABCD 1059 4/6/2018 17:35
表2。详细信息
MondayOfWeekDate这里是星期几开始
AssignmentID | MondayOfWeekDate | Percent | StudentID | LastReviewDate
3133 3/19/2018 0 1059 3/23/2018 17:20
3133 4/2/2018 100 1689 4/7/2018 10:35
..............
我试图编写SQL来表明2018年3月26日至2018年1月4日之间显示那周的作业3133,但失败了
SELECT Assignment.* FROM Assignment,Detail
WHERE Assignment.Class = 'GC'
AND Assignment.ID=Detail.AssignmentID
AND Detail.MondayOfWeekDate >'2018/03/26'
AND Percent<100
当然结果什么都没有,但是我找不到正确的代码来执行
请问我如何编写SQL以正确显示该信息?非常感谢。
答案 0 :(得分:0)
SELECT Assignment.* FROM Assignment,Detail
WHERE Assignment.Class = 'GC'
AND Assignment.ID=Detail.AssignmentID
AND Detail.MondayOfWeekDate BETWEEN '2018-03-26' and '2018-04-01'
AND Percent<100
您将不会获得任何结果,因为在3/26/2018至4/1/2018之间没有任何东西?
您犯的唯一错误是您的日期,该日期应在之间使用,最好使用iso格式的日期yyyy-MM-dd
答案 1 :(得分:0)
我无法直接说出为什么您什么都看不到。但是我可以建议如何编写一个更具可读性和可维护性的查询。 可能可以解决您的问题,但我不知道。
一些简单的准则:
FROM
语法。因此,从这样的查询开始:
JOIN
还可以在运行查询时检查语法错误。容易犯一些导致查询无法运行的小错误。
答案 2 :(得分:0)
您的查询因行而失败
3133 4/2/2018 100 1689 4/7/2018 10:35
是大于>'2018/03/26'
的那个,但其百分比不是<100
,而是100。
您到底在找什么?