SQL查询仅显示已完成的GROUPED BY结果

时间:2013-03-25 09:24:54

标签: sql visual-studio tsql sql-server-2008-r2

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

让我们说列结构如下:

ID | UserRef | ResultRef | Date  | Time 

其中:

  • ID是行

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

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

  • DateTime是不言自明的

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

同样值得注意的是,并非所有参与者都被邀请回应所有调查:有些人会这样做,但有些人只会被邀请参加其中一些调查。

我一直在考虑GROUP BY查询,但无法找出WHERE条款。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

试试这个

SELECT * FROM yourTable WHERE ResultRef = 'A' and UserRef NOT IN 
 (SELECT DISTINCT UserRef FROM yourTable 
  WHERE ResultRef != 'A')