如何使用完整的记录集获取ID

时间:2013-03-25 12:24:14

标签: sql sql-server tsql sql-server-2005

我有以下表格:

UserId      UserDb      Systolic    Diastolic   Weight      Height
----------- ----------- ----------- ----------- ----------- -----------
1000022     2           0           0           0           67
1000022     2           23          323         33          0
50508       30          3           3           33          39
51604       0           0           44          44          191
51318       0           0           0           0           0

如何通过完整的记录集获取UserId?我的意思是数据可以分散在记录之间,例如 1000022 id的用户在一行中有 height 记录, weight 收缩其他行中舒张

我有表变量的解决方案但它没有效率和灵活性。是否可以进行此类查询?

我想得到那个ID:

UserId
-----------
1000022
50508

1 个答案:

答案 0 :(得分:3)

SELECT  userID
FROM    TableName
GROUP   BY UserID
HAVING  MAX(UserDb) <> 0 AND
        MAX(Systolic) <> 0 AND
        MAX(Diastolic) <> 0 AND   
        MAX(Weight) <> 0 AND
        MAX(Height) <> 0

输出

╔═════════╗
║ USERID  ║
╠═════════╣
║   50508 ║
║ 1000022 ║
╚═════════╝