Строка ошибки 1 в позиции 16 'D_INS_COMPANY.ORDER_BY' в предложении select не является ни агрегатной, ни в предложении group by - PullRequest
0 голосов
/ 01 февраля 2020

Данный код является запросом выбора с пропущенным соединением (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 'D_INS_COMPANY.ORDER_BY' в предложении select не является ни агрегатом, ни предложением group by.

Может кто-нибудь мне помочь? Спасибо

1 Ответ

0 голосов
/ 01 февраля 2020

Ваша проблема заключается в следующем блоке кода:

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. Во-вторых, вы возвращаете два поля и группируете только по одному. Любое поле, которое не используется в группе, должно быть агрегатом некоторого типа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...