0

此 Select 语句提供了以下数量:

- 相同的 CatCode

-相同的猫名

但使用不同的 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 时出现错误

ORA-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;
4

3 回答 3

1

我认为“p.Dw_Prod_Id Desc”列不在 group by 子句中。

于 2012-05-25T04:59:41.010 回答
0

我认为问题出现了,因为您在 ORDER BY 子句中包含了“p.Dw_Prod_Id”但是,该列尚未在主查询中选择,因此会产生问题将 ORDER BY 放入 select 子句中的列之一(p.CatCode, p.CatName)

于 2012-05-25T05:03:15.993 回答
0

您还必须将所有在 group by OR order by 子句中使用的列放在选择中。

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;
于 2012-05-25T06:09:03.280 回答