按别名分组的SQL

按别名分组的SQL,sql,group-by,sql-server-2016,Sql,Group By,Sql Server 2016,我有一个smallint列,用于表示时间。我编写了下面的代码,根据时间推导出一个结果: CASE WHEN CONVERT(varchar, t0.U_ORC_BE_ProdTime, 108) BETWEEN '07:00:00' AND '19:00:00' THEN '1' ELSE '2' END AS [Shift], --If time is between 7am and 7pm then Shift 1, else Sh

我有一个smallint列,用于表示时间。我编写了下面的代码,根据时间推导出一个结果:

        CASE
    WHEN 
        CONVERT(varchar, t0.U_ORC_BE_ProdTime, 108) BETWEEN '07:00:00' AND '19:00:00' THEN '1'
    ELSE '2'
END  AS [Shift],
    --If time is between 7am and 7pm then Shift 1, else Shift 2
我想将它插入到我已有的查询中,然后让它也按班次分组

    SELECT 

T6.U_ORC_BE_StyleName AS [Style Name],
T0.[ItemCode],
STUFF(T0.[ItemCode], 1, 6, '') AS [Shortened ItemCode],
SUM(T0.[PlannedQty]) AS [Planned Qty],
SUM(T0.CmpltQty) AS [Actual Qty], 
SUM(T0.CmpltQty) - SUM(T0.PlannedQty) AS [Qty Difference],
SUM(T5.U_ORC_BE_HECTOLITER * T0.CmpltQty) AS [Total Hectoliters],

CASE
    WHEN [.......]
    THEN
    WHEN [.......]
    THEN
END AS [Line],

T0.U_ORC_BE_ProdDate AS [Date Produced]

    FROM [.......]

    GROUP BY T6.U_ORC_BE_StyleName, T0.[ItemCode], T5.Code , T0.U_ORC_BE_ProdDate
它不断抛出一个错误,虽然我怀疑这是由于试图按别名分组


“每个GROUP BY表达式必须至少包含一个非外部引用的列。”

要按计算列(如case语句)进行分组,还必须将该语句包含在GROUP BY中。例如:

SELECT
  CASE ... END AS CaseStatement,
  [YourColumns]
FROM YourTable
GROUP BY CASE ... END

要按计算列(如case语句)分组,还必须在GROUPBY中包含该语句。例如:

SELECT
  CASE ... END AS CaseStatement,
  [YourColumns]
FROM YourTable
GROUP BY CASE ... END

如错误所述,您不能按别名分组。当您的小组结束后,您必须复制整个案例

 select 
 ....
 group by 
 T6.U_ORC_BE_StyleName, T0.[ItemCode], T5.Code , T0.U_ORC_BE_ProdDate,
 CASE
    WHEN [.......]
    THEN
    WHEN [.......]
    THEN
END 

如错误所述,您不能按别名分组。当您的小组结束后,您必须复制整个案例

 select 
 ....
 group by 
 T6.U_ORC_BE_StyleName, T0.[ItemCode], T5.Code , T0.U_ORC_BE_ProdDate,
 CASE
    WHEN [.......]
    THEN
    WHEN [.......]
    THEN
END 

抛出的错误是什么?抱歉,我已编辑问题以包含错误。选择中的
T0.U\U ORC\U BE\U ProdDate
,如果未选择它,则从
Group by
中删除抛出的错误是什么?抱歉,我已编辑问题以包含错误。选择中的
T0.U\U ORC\U BE\U ProdDate
,如果您没有选择它,那么从
组中删除的
看起来很明显!非常感谢。看起来很明显!非常感谢。这样给我就更有意义了。谢谢你的帮助。这样给我会更有意义。谢谢你的帮助。