2015-03-11 6 views
1

Ниже запроса Я пытаюсь отфильтровать статус id = 7 записей для team_id> 1 Но хотите включить записи с status_id = 7 для team_id = 1. Как мы можем написать запрос ,SQL-запрос, где параметр предложения, основанный на другом значении столбца

SELECT MAX(created_date) AS maxtime, 
     TEAM_ID, 
     ticket_id 
FROM ri_ticket_status_history 
WHERE status_id<>7  
GROUP BY TEAM_ID,ticket_id 
+0

описание отличается от вашего запроса. Я не вижу никакой команды, где оператор – Jens

ответ

2

Сочетание and и or логические операторы должны это сделать:

SELECT MAX(created_date) AS maxtime ,team_id, ticket_id 
FROM  ri_ticket_status_history 
WHERE (status_id<>7 AND team_id > 1) OR team_id = 1 
GROUP BY team_id, ticket_id 
+0

Было бы лучше: status_id <> 7 И team_id> = 1 –

+0

@RenatoReyes - нет, это исключает строки с status_id = 7 и team_id = 1. – Mureinik

+0

Вы правы, @Mureinik xD –

1

Попробуйте

select max(created_date) as maxtime ,TEAM_ID,ticket_id 
from ri_ticket_status_history 
where status_id<>7 or (status_id=7 and team_id=1) 
group by TEAM_ID,ticket_id 
1

скобка расположение может изменить набор результатов.

select max(created_date) as maxtime ,TEAM_ID,ticket_id 
from ri_ticket_status_history 
where (status_id<>7 or (status_id=7 and team_id=1)) 
group by TEAM_ID,ticket_id 
Смежные вопросы