Sql select子句中位置16“D_INS_COMPANY.ORDER_BY”处的错误行1既不是聚合,也不在group BY子句中

Sql select子句中位置16“D_INS_COMPANY.ORDER_BY”处的错误行1既不是聚合,也不在group BY子句中,sql,ssas,Sql,Ssas,给定的代码是select查询和省略的join select。。。在SSAS中 SELECT D_INS_COMPANY.INS_COMPANY_KEY, CASE WHEN D_INS_COMPANY.INS_COMPANY_DESC = '-3' THEN 'NOT_APPLICABLE' ELSE D_INS_COMPANY.INS_COMPANY_DESC END AS INS_COMPANY_DESC, D_INS_COMPANY.INS_COMPN

给定的代码是select查询和省略的join select。。。在SSAS中

SELECT D_INS_COMPANY.INS_COMPANY_KEY,
  CASE
    WHEN D_INS_COMPANY.INS_COMPANY_DESC = '-3'
    THEN 'NOT_APPLICABLE'
    ELSE D_INS_COMPANY.INS_COMPANY_DESC
  END  AS INS_COMPANY_DESC,
  D_INS_COMPANY.INS_COMPNAY_GROUP_DESC AS INS_COMPANY_GROUP_DESC,
  COALESCE(PRIOR_INS_COMPANY_GROUP,INS_COMPNAY_GROUP_DESC)
    AS PRIOR_INS_COMPANY_GROUP,
  D_INS_COMPANY.ORDER_BY,
  D_INS_COMPANY.ORDER_BY_GROUP 
FROM D_INS_COMPANY 
LEFT JOIN
  (SELECT TRIM(UPPER(INS_COMPANY_SNL_DESC)) AS INS_COMPANY_SNL_DESC ,
    MIN( PRIOR_INS_COMPANY_GROUP)           AS PRIOR_INS_COMPANY_GROUP
  FROM LKP_INS_CARRIER
  WHERE TRIM(INS_COMPANY_SNL_DESC) IS NOT NULL
  GROUP BY 1
  ) LC 
ON (LC.INS_COMPANY_SNL_DESC = TRIM(UPPER(D_INS_COMPANY.INS_COMPANY_DESC)));
获取此错误:

SQL编译错误:错误行1位于位置16 select子句中的“D_INS_COMPANY.ORDER_BY”既不是聚合,也不在group BY子句中


有人能帮我吗?谢谢

您的问题在于下面的代码块:

SELECT TRIM(UPPER(INS_COMPANY_SNL_DESC)) AS INS_COMPANY_SNL_DESC ,
    MIN( PRIOR_INS_COMPANY_GROUP)           AS PRIOR_INS_COMPANY_GROUP
  FROM LKP_INS_CARRIER
  WHERE TRIM(INS_COMPANY_SNL_DESC) IS NOT NULL
  GROUP BY 1

这里有两个问题。首先,虽然您可以按1订购,但不能按1分组。第二个是返回两个字段,只按一个字段分组。group by中未使用的任何字段都必须是某种类型的聚合。

Just Guardy=group by 1不需要?我刚刚在SQL Server 2017中尝试了您的查询,它运行良好。请看,我已尝试从LKP INSU承运人中选择Trimpersins_COMPANY_SNL_DESC作为INS_COMPANY_DESC,MIN Previor_INS_COMPANY_GROUP作为Previor_INS_COMPANY_GROUP,其中Trimpersins_SNL_DESC不是空的Trimpersins_COMPANY_SNL_DESC,Previor_INS_COMPANY_GROUP或从LKP_CARRIER中选择Trimpersins_COMPANY_SNL_DESC作为Previor_COMPANY_DESC,MIN Previor_INS_COMPANY_GROUP作为Previor_COMPANY_GROUP作为Previor_INS_COMPANY_DESC,其中Trimpersins_COMPANY_SNL_DESC不是空的Trimpersion BY Trimpersins_COMPANY_DESC不工作请您发表意见,我的公司使用的是2010版,有没有什么方法可以取代左键选择…?我认为这是不准确的。你可以按第一列进行分组,但我认为必须如实提及。请参阅SQL小提琴。感谢您的回复。我已经尝试过这个查询,从LKP INS_承运人中选择Trimpersins_COMPANY_SNL_DESC作为INS_COMPANY_DESC,MIN Previor INS_COMPANY_GROUP作为Previor INS_COMPANY_GROUP作为LKP INS_CARRIER的Previor INS_COMPANY_GROUP,其中Trimpersins_COMPANY_SNL_DESC不是空的,Previor INS_COMPANY_集团仍然给出相同的结果error@TheImpaler不总是,对于某些版本和风格的SQL,操作顺序使得SQL不知道分组依据之前的字段列表。ie SQL 2008操作顺序为FROM、WHERE、groupby、have、SELECT、order BY,因此groupby 1将不起作用。