2012-05-25 4 views
0

Это Оператор Select Дает Количество:Group By Заявление SQL

-Same CatCode

-Same CatName

, но с разными Sales_Amt

Select p.CatCode, p.CatName, s.Sales_Amt 
From A3_Dw_Prod p, A3_Dw_Sales s 
Order By p.Dw_Prod_Id Desc; 

Я хотел бы использовать Sum Функция для добавления этих категорий и их групп Когда я использую Sum, я получаю сообщение об ошибке

ОРА-00979: не GROUP BY выражение

Select p.CatCode, p.CatName, Sum(s.Sales_Amt) 
From A3_Dw_Prod p, A3_Dw_Sales s 
Where p.Dw_Prod_Id = s.Dw_Prod_Id 
Group By p.CatCode, p.CatName 
Order By p.Dw_Prod_Id Desc; 

ответ

2

Я считаю, что столбец 'p.Dw_Prod_Id Описание изделия' не в группе по п.

+0

Вы знакомый обряд! Теперь работает –

1

Я думаю, что проблема возникает, как вы включили «p.Dw_Prod_Id» в ORDER BY пункте Однако, этот столбец не был выбран в основном запросе, так что создает проблему Привести в порядок один из столбцов то есть в предложении select (p.CatCode, p.CatName)

1

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

Select p.CatCode, p.CatName, p.Dw_Prod_Id, Sum(s.Sales_Amt) 
From A3_Dw_Prod p, A3_Dw_Sales s 
Where p.Dw_Prod_Id = s.Dw_Prod_Id 
Group By p.CatCode, p.CatName,p.Dw_Prod_Id 
Order By p.Dw_Prod_Id Desc, p.CatCode, p.CatName;