0

我有一个查询,它查看 SQL Server 2008 R2 中一组数据的结果。从本质上讲,一个样本的人已经在几个月内每天进行几次调查。在 Visual Studio 中,我现在想写一份报告,只显示那些在整个时间段内从未错过调查的人。

假设列结构如下:

ID | UserRef | ResultRef | Date  | Time 

在哪里:

  • ID是行的唯一标识符

  • UserRef是每个参与者的唯一标识符

  • ResultRef表示调查是如何完成的(例如,“A”表示调查按时完成;“C”表示参与者完全错过了调查;“O”表示调查已完成,但迟到了;等等,等等, ETC)

  • Date并且Time是不言自明的

我想找到的是所有从未错过调查的人(即只在他们的调查中记录过“A” ResultRef)。

还值得记住的是,并非所有参与者都被邀请对所有调查做出回应:有些人会被邀请,但有些人只会被邀请参加其中的一些。

我一直在考虑一个GROUP BY查询,但无法弄清楚这个WHERE子句。

有什么建议么?

4

1 回答 1

2

尝试这个

SELECT * FROM yourTable WHERE ResultRef = 'A' and UserRef NOT IN 
 (SELECT DISTINCT UserRef FROM yourTable 
  WHERE ResultRef != 'A')
于 2013-03-25T09:30:00.167 回答