2015-03-26 3 views
0

У меня есть эти результаты запроса из MenuTable для разных групп пользователей. У пользователя может быть больше групп. Итак, я хочу объединить разрешения для всех групп для того же PageID, к которому принадлежит Пользователь. Как это сделать, используя SQL Query?Слияние результатов таблицы с использованием 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 

ответ

3

Простой запрос, как это можно сделать:

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

кроме того, вы можете использовать где положение, если вы хотите выглядеть в конкретных группах (комментировал состояние).

+0

спасибо, брату ... :) –

Смежные вопросы