使用SQL Query合并表结果

时间:2015-03-26 11:45:16

标签: sql sql-server

我有针对不同用户组的MenuTable的这些查询结果。 用户可以拥有更多组。因此,我想合并用户所属的同一PageID的所有组的权限。如何使用SQL Query完成此操作?

第一个结果:

UserGroupID   PageID   CanView     CanDelete     CanEdit
----------------------------------------------------------------------
   1           1         0            0            0
   1           2         1            1            0
   1           3         1            0            0 

第二个结果

UserGroupID   PageID   CanView     CanDelete     CanEdit
----------------------------------------------------------------------
   2            1         1            1            1
   2            2         0            0            0
   2            3         0            0            0 

我想得到这个结果。

 PageID   CanView     CanDelete     CanEdit
------------------------------------------------------------
   1         1            1            1
   2         1            1            0
   3         1            0            0 

1 个答案:

答案 0 :(得分:3)

像这样的简单查询可以:

SELECT PageID,
       MAX(CanView)   [CanView],
       MAX(CanDelete) [CanDelete],
       MAX(CanEdit)   [CanEdit]
FROM   table
--WHERE  UserGroupID in(1,2)
GROUP  BY PageID 

另外,如果要查看特定组(注释条件),可以使用where子句。