从表中选择所有列,但仅将其分组

时间:2016-06-15 14:02:24

标签: sql oracle oracle11g

可能这是一个基本问题,但我自己无法解决这个问题,如果有人能帮助我实现以下目标,我将不胜感激:

我希望从表中获取所有列,但只将其分组。我的查询如下:

SELECT NATIONAL_ID,
         EMPLID,
         PLAN,
         CHECK_DT,
         PERIODS,
         SUM (SALARY),
         SUM (EE_CONT),
         SUM (ER_CONT),
         SUM (AL_HOURS)
    FROM DTL_TMP
   WHERE EMPLID = 'xxxxx'
GROUP BY NATIONAL_ID,
         EMPLID,
         PLAN,
         CHECK_DT,
         PERIODS;

如果我在上面的查询中添加更多列,则会返回所有行,但我只想要上述查询返回的行。

我确实尝试了以下几个其他选项/示例:

SELECT OD.ProductID, OD.ProductName, CalQ.OrderQuantity
    FROM (SELECT DISTINCT ProductID, ProductName
        FROM OrderDetails) OD
    INNER JOIN (SELECT ProductID, OrderQuantity SUM(OrderQuantity) 
                FROM OrderDetails 
                GROUP BY ProductID) CalQ
    ON CalQ.ProductID = OD.ProductID

但由于表中没有键,它会检索多行。现在,如果我将任何字段作为键,它会给出唯一的约束违规。

请帮忙。 提前致谢!

0 个答案:

没有答案