2013-04-11 2 views
0

Я столкнулся с проблемой при попытке извлечь строку, основанную на условии из другой строки. Пример таблицы:Запрос DB2 на основе условия из той же таблицы

GroupID   | Name  | Salary | Car 

-------------------------------------------------------------------------------- 
9009   | Isaac  | 10,000  | Honda 
9009   | Ricky  |    | Nissan 
9080   | Patrick | 20,000  | Ferrari 
9080   | Susan  | 30,000  | Nissan 

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

GroupID   | Name  | Salary | Car 

-------------------------------------------------------------------------------- 
9009   | Isaac  | 10,000  | Honda 
9080   | Patrick | 20,000  | Ferrari 

на основе состояния car = Nissan?

+0

Основываясь на данных выше таблицы и вашей * логике *, каковы ваши ожидаемые результаты? – bonCodigo

+0

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

+0

Спасибо за ваш ответ, я обновил свой вопрос, чтобы устранить любые сомнения. –

ответ

1

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

SELECT GroupID, Name, Salary, Car 
    FROM tableName 
WHERE GroupID IN (SELECT GroupID 
        FROM tableName 
        WHERE Car = 'Nissan') -- << Your input 
    AND car <> 'Nissan' 

Подробнее о подзапросов here.

+0

omg это работает. Я попытался использовать CASE как мой подзапрос, который не вернул мне ожидаемый результат, и поэтому я думал, что подзапрос не будет работать. большое спасибо –

0
SELECT * FROM yourTable where Car <> 'Nissan'; 

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

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