我正在做一个项目,我的目标是使学校的收费系统自动化。我正在 VB.NET 2012 中实现该项目并使用 SQLServerCE 处理数据。
我的情况是这样的:
我有两个表,即:“feecollection”和“StudentDetails”
表feecollection的列如下
同样,StudentDetails表的列如下
现在我想找出违约学生的姓名。我正在根据名称、月份和默认字段进行过滤。
逻辑:给定月份收费的学生的姓名已支付,因此默认为所有在 StudentDetails 中但不在 feecollection 中的姓名,其 defaulter 字段为“1”(1 表示他们已付款)。
我的查询:
select StudentDetails.Name where StudentDetails.Name not in
(Select feecollection.Name, feecollection.Month, feecollection.defaulter,
StudentDetails.Name from feecollection
inner join StudentDetails on feecollection.Name = StudentDetails.Name
where StudentDetails.Name = 'def' and feecollection.month = 'January'
and feecollection.defaulter = '1'
但是这个查询不能正常工作。我在哪里做错了?