【问题标题】:SQL / Teradata Query - Filter by fields while using multiple Inner JoinsSQL / Teradata 查询 - 在使用多个内部联接时按字段过滤
【发布时间】:2014-05-30 00:48:02
【问题描述】:

我需要查询我的数据库并将其恢复:

| Policy Num | Coverage Code |

我当前的查询返回 2014 年的所有内容(即每个索赔编号对应的一行,并附有保险范围代码)

选择 SCHEMA.TABLE.POLICY_NUMBER, P_FAR_BI_VW.V_CLAIM_SERVICE_TYP_DIM.COVERAGE_TYP_CDE

来自

SCHEMA.TABLE

INNER JOIN SCHEMA.TABLE ON (SCHEMA.TABLE.POLICY_ID=SCHEMA.TABLE.POLICY_ID)

INNER JOIN SCHEMA.TABLE ON (SCHEMA.TABLE.SERVICE_TYPE_ID=SCHEMA.TABLE.SERVICE_TYPE_ID)

INNER JOIN SCHEMA.TABLE ON(SCHEMA.TABLE.FISCAL_PERIOD_ID=SCHEMA.TABLE.FISCAL_PERIOD_ID AND SCHEMA.TABLE.YEAR_NUM = 2014)

我尝试了几种不同的查询方式,但似乎无法正常工作。我试过了:

选择 不同的(SCHEMA.TABLE.POLICY_NUMBER), SCHEMA.TABLE.COVERAGE_TYP_CDE

内连接

分组依据 SCHEMA.TABLE.COVERAGE_TYP_CDE

和其他各种想法。我得到的错误是:Selected non-aggregate values must be part of the associated group

我知道一定要去

【问题讨论】:

    标签: sql select teradata


    【解决方案1】:

    您选择的项目必须全部在您的组中

    SELECT distinct(SCHEMA.TABLE.POLICY_NUMBER)
         , SCHEMA.TABLE.COVERAGE_TYP_CDE
    
    /* INNER JOINS */
    
    GROUP BY  SCHEMA.TABLE.POLICY_NUMBER
           ,  SCHEMA.TABLE.COVERAGE_TYP_CDE;
    

    【讨论】:

    • 或者干脆删除 GROUP BY :-)
    猜你喜欢
    • 2020-03-07
    • 1970-01-01
    • 2013-11-03
    • 2011-07-10
    • 1970-01-01
    • 2016-10-27
    • 1970-01-01
    • 1970-01-01
    • 2019-01-20
    相关资源
    最近更新 更多