Здравствуйте уважаемые! Я вновь с проблемой в своих таблицах
Суть в следующем: Есть вьюшка v_r_g2 (во вложении). Уже нормально сформирована и отражается, как и требуется.
Есть запрос к ней:
SELECT distinct
cam_gr_id, user_id, cam_group_name, is_admin, rule_cam_status_user, rule_cam_status_group,
(CASE
WHEN (ISNULL(rule_status) AND ISNULL(rule_status_group) AND ISNULL(rule_cam_status_user)
AND ISNULL(rule_cam_status_group) AND (is_admin = 0)) THEN 3
// Если все вышеперечисленные права NULL и is_admin = 0, то значение из столбца result заменяется на тройку
WHEN (ISNULL(rule_status) AND ISNULL(rule_status_group) AND (is_admin = 0 || 1))
THEN result
// Если все вышеперечисленные права NULL и is_admin = 0 или 1, то значение из столбца result остаются без изменений
WHEN (is_admin = 1) THEN result
// result остаётся без изменений
ELSE 3 END) AS result
FROM v_r_g2
При запуске данного запроса выводятся данные, но не в той форме, в которой требуются для вывода. То есть впоследствии, требуются три основных значения cam_gr_id, user_id, result. Но так как cam_gr_id (это группа камер) содержит множество cam_id (камеры), то получается иногда две строки с одинаковыми cam_gr_id, user_id, но с разными result. cam_id нельзя убрать из таблицы (не будет нужного конечного результата)!
Можно ли оставить только одну строчку с cam_gr_id, user_id при условиях:
1. Если result = 3, то оставлять только эту строчку, Если же любому другому числу, то оставлять как есть (Если тройка не будет записана CASE`ом, то второй строчки не будет, соответственно только при ройке нужно будет применить ЭТО условие)
Если кто меня не понял, задавайте вопросы) Постараюсь разжевать более дотошно и понятно.
Прикрепленные файлы:
cams0.rar, Размер: 3,546 байт, Скачано: 879