【问题标题】:Group By Statement SQL按语句分组 SQL
【发布时间】:2012-05-25 04:55:08
【问题描述】:

这个 Select 语句给出了一个数字:

-相同的猫码

-相同的猫名

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

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;

【问题讨论】:

    标签: sql oracle oracle10g


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        您还必须将您在 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;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多