2015-02-18 4 views
0
ID  Balance  Account Type  Date 
1245 100   HR    01-01-15 
1245 500   HC    02-01-15 
1325 200   HC    03-01-15 
1789 400   HC    04-01-15 

В этом случае, я хочу только строки с типом учетной записи, как HC и баланс не равен нулюКак написать SQL-запрос, чтобы избежать дублирования?

select * from ABC where Account Type = 'HC' 
and Balance<>0; 

не работает.

Я хочу только идентификатор, который имеет тип учетной записи как HC и баланс> 0, и для этого идентификатора он не должен иметь тип учетной записи как HR.

+0

Этот запрос работает на MySql или Sql Server? –

ответ

1

Попробуйте это:

select * from ABC 
where Account_Type = 'HC' 
and Balance<>0 
and not exists(
    select 'HR' 
    FROM abc a2 
    where a2.account_type = 'HR' 
    AND a2.id = abc.id 
) 
+0

Спасибо @jamesz, joe Taras –

0

Это должно работать:

select * 
from ABC A1 
where 
    Account Type = 'HC' and 
    Balance<>0 and 
    not exists (
    select 1 
    from ABC A2 
    where 
     A1.ID = A2.ID And 
     A2.Type = 'HR' 
) 
Смежные вопросы