0

这是我收到的错误:在选择列表中无效,因为它不包含在聚合函数或 GROUP BY 子句中。

当我编程时

SELECT prod.LineNumber ,
    "Pounds Made" = SUM(prod.PoundsMade) ,
    "Down Time" = SUM(prodDown.DownTimeHrs + DownTimeMins / 60) ,
    prodDown.LineNumber ,
    availHrs.LineNumber ,
    "Available Hours" = SUM(availHrs.AvailableHRS)
FROM   rpt_Line_Shift_Prod AS prod
    INNER JOIN rpt_Line_Shift_ProdDownTime AS prodDown
    INNER JOIN rpt_LINE_Shift_AvailableHrs AS availHrs ON prodDown.LineNumber = availHrs.LineNumber ON prodDown.LineNumber = prod.LineNumber
--ON availHrs.LineNumber = prod.LineNumber
GROUP BY prod.LineNumber

我在这里使用了三个表,我将它们重命名为 prodDown、prod 和availHrs。

谢谢你!

4

4 回答 4

2
SELECT  prod.LineNumber
      ,"Pounds Made" = SUM(prod.PoundsMade)
      ,"Down Time" = SUM(prodDown.DownTimeHrs + DownTimeMins/60)
      , prodDown.LineNumber
      , availHrs.LineNumber
      ,"Available Hours" = SUM(availHrs.AvailableHRS)     
FROM rpt_Line_Shift_Prod AS prod
INNER JOIN rpt_Line_Shift_ProdDownTime AS prodDown
    ON prodDown.LineNumber = prod.LineNumber
INNER JOIN rpt_LINE_Shift_AvailableHrs AS availHrs
    ON prodDown.LineNumber = availHrs.LineNumber
GROUP BY prod.LineNumber,prodDown.LineNumber, availHrs.LineNumber
于 2013-08-29T20:34:14.437 回答
0

当您对列使用聚合函数SUM()或任何其他聚合函数时,您需要确保选择列表中的任何其他列也被分组。这将确保您不会得到任何重复。因此,正如其他答案所暗示的那样,您需要确保在GROUP BY子句中包含其他列。

于 2013-08-30T01:43:53.600 回答
0

prodDown.LineNumber``andavailHrs.LineNumber`也放入GROUP BY子句中:

GROUP BY prod.LineNumber,prodDown.LineNumber, availHrs.LineNumber

选择列表中没有聚合的所有列都sum需要在GROUP BY子句中。

于 2013-08-29T20:29:26.493 回答
0

你只prod.LineNumber 在你的选择中分组,你也有 prodDown.LineNumber, availHrs.LineNumber 在组子句中添加它们

GROUP by prod.LineNumber,prodDown.LineNumber, availHrs.LineNumber
于 2013-08-29T20:33:34.710 回答