2015-02-19 1 views
0

Вот мой столподсчет встречаемости строк с определенным статусом, без использования подзапросов

loan_idbid_idlender_idborrower_idколичествоинтереспродолжительностьloan_status

1 1 60 63 300.00 12.00 3 'completed' 
2 2 61 63 300.00 12.00 3 'completed' 
3 3 62 63 300.00 12.00 3 'pending', 
4 1 62 63 300.00 12.00 3 'pending' 
7 4 60 63 300.00 12.00 3 'completed' 

Я хочу вытащить только те bid_id, чье кредитное_состояние всех записей завершено. Это означает, что если есть запись bid_id со статусом в ожидании, то она не потянет эту запись.

Я использую followin запрос, который работает нормально:

SELECT bid_id 
FROM loan 
WHERE bid_id NOT IN ( 
    SELECT l.bid_id 
    FROM loan l 
    WHERE l.`loan_status` = 'pending' 
    AND l.bid_id = bid_id 
    GROUP BY l.`bid_id` 
    HAVING COUNT(l.`bid_id`)>= 1 
) 
GROUP BY bid_id 

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

ответ

2

Вы легко можете сделать это с group by и having:

select bid_id 
from loan 
group by bid_id 
having sum(loand_status = 'pending') = 0 
+0

Большое спасибо за обеспечение оптимального решения !!! – neeraj

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