SQL查询-查找缺少的信息
我可以找到与我类似的问题和答案,但我似乎无法解释 我正在尝试为WinC窗体应用程序获取一些数据。我更希望将其作为数据库中的一个视图,可以使用linqtosql访问。我只是不知道该怎么做。我意识到我可以使用循环来构建我想要的表,但是我希望一个查询可以更有效地实现同样的事情 我有三个表,其中包含以下字段: 星期表 周整数 用户表 用户字符串 开始周整数 提交表格 用户字符串 周整数 状态字符串 我想要一个查询,根据SubmissionTable检查每个用户,查找每周大于或等于开始周的条目 对于为该用户检查的每个星期,如果提交表中没有条目,或者提交表中的条目的状态为“未完成”,我希望查询返回用户名和缺少的星期。我基本上是在寻找一个列出所有缺失或不完整条目的查询结果 例如: WeekTable包含五条记录,1-5条 UserTable包含两条记录:开始周为2的用户A和开始周为5的用户B SubmissionTable包含3条记录: 用户A,2,完成 用户A,3,不完整 用户A,5,完成 用户A缺少第1周的条目,但这可以忽略,因为他们的开始周是第2周,他们也缺少第4周的条目,并且他们提交的第3周条目不完整。用户B在第5周开始使用,因此应该有一个条目,但它丢失了 我想要的查询结果如下: 用户A,3 用户A,4 用户B,5SQL查询-查找缺少的信息,sql,sql-server,Sql,Sql Server,我可以找到与我类似的问题和答案,但我似乎无法解释 我正在尝试为WinC窗体应用程序获取一些数据。我更希望将其作为数据库中的一个视图,可以使用linqtosql访问。我只是不知道该怎么做。我意识到我可以使用循环来构建我想要的表,但是我希望一个查询可以更有效地实现同样的事情 我有三个表,其中包含以下字段: 星期表 周整数 用户表 用户字符串 开始周整数 提交表格 用户字符串 周整数 状态字符串 我想要一个查询,根据SubmissionTable检查每个用户,查找每周大于或等于开始周的条目 对于为该用
有人能帮我吗???你需要做两件事-建立周和用户的组合,并检查缺少的值
select uw.* from
(
select [user], [week]
from users
inner join weeks on users.startweek<=weeks.[week]
) uw
left join
submissions
on uw.[user]= submissions.[user]
and uw.[week] = submissions.[week]
and submissions.[status]='complete'
where submissions.[user] is null
我没有寻找不完整或缺失,而是寻找完整,并将其排除。太棒了,我甚至没有想过用这种方式尝试,这是一个如此优雅的解决方案!谢谢我将周整数替换为上面使用的日期整数,以简化我的问题,然后将我的列表限制为过去两个月内的条目,并防止查看比上周晚的周。我将最后一位更改为:where submissions.[user]为null,uw.[week]