Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL查询-查找缺少的信息_Sql_Sql Server - Fatal编程技术网

SQL查询-查找缺少的信息

SQL查询-查找缺少的信息,sql,sql-server,Sql,Sql Server,我可以找到与我类似的问题和答案,但我似乎无法解释 我正在尝试为WinC窗体应用程序获取一些数据。我更希望将其作为数据库中的一个视图,可以使用linqtosql访问。我只是不知道该怎么做。我意识到我可以使用循环来构建我想要的表,但是我希望一个查询可以更有效地实现同样的事情 我有三个表,其中包含以下字段: 星期表 周整数 用户表 用户字符串 开始周整数 提交表格 用户字符串 周整数 状态字符串 我想要一个查询,根据SubmissionTable检查每个用户,查找每周大于或等于开始周的条目 对于为该用

我可以找到与我类似的问题和答案,但我似乎无法解释

我正在尝试为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,5


有人能帮我吗???

你需要做两件事-建立周和用户的组合,并检查缺少的值

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]DATEADDDAY,-60,GETDATE