2015-05-20 2 views
0

У меня есть проблема с ниже подзапросом:Расчетного поля возвращения такого же значение SQL

(select AVG(retail) 
from STOCK 
where category = 'TOYOTA' or category = 'HONDA') as AVERAGE_SALE_PRICE 

Всего запрос:

select 
    d.name, s.category,(select AVG(retail) 
    where category = 'TOYOTA' or category = 'HONDA') as AVERAGE_SALE_PRICE 
from dealer d join stock s using (dealerID) 

Вопрос заключается в том, что это вычисляемое поле возвращает то же значение для всех строки в запросе, я понимаю, что у меня, возможно, есть GROUP BY, но я довольно запутался там, где ...

Спасибо за любую помощь

+0

Вы должны присоединиться к STOCK стола с приводным столом в основном выборе. –

+0

Можете ли вы разместить ddl для этих таблиц дерева. Есть ли иностранный ключ между складом и дилером, складом и башней? –

+0

@StefanYordanov Я, кажется, ошибся, я присоединяюсь к столу и таблице дилера, оба из них имеют дилерский ключ в качестве ключа – ITworldR

ответ

1

Попробуйте этот запрос:

select AVG(retail) as AVERAGE_SALE_PRICE, category 
from STOCK 
where category='TOYOTA' or category='HONDA' 
group by category 

Update.This должен дать вам желаемые результаты:

select 
    d.name, 
    s.category, 
    (select AVG(s.retail) 
    from stock s1 
    where s1.dealerID = s.dealerID 
      and (s1.category = 'TOYOTA' or s1.category = 'HONDA') as AVERAGE_SALE_PRICE 
from dealer d 
join stock s using (dealerID) 
+0

. Могу ли я обернуть это как вложенный подзапрос? Поскольку я не могу использовать этот полный запрос, пока я использую соединение таблицы – ITworldR

+0

Я думаю, что нет. Вы должны присоединиться к таблице STOCK с помощью таблицы вождения в основном запросе. Добавьте дополнительную информацию для использования. –

+0

Я добавлю весь запрос выше: D спасибо за вашу помощь – ITworldR

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