【问题标题】:SQL/DB2 concatenate rows into one field (DB2)SQL/DB2 将行连接成一个字段 (DB​​2)
【发布时间】:2020-03-01 05:01:05
【问题描述】:

尝试使用内部连接连接表中的值,这可能吗,附上示例代码。

如果我删除 CM.CMCSNM 列,代码将起作用

SELECT trim(CM.CMCSNM), CALLLOGP.CHSTKY, 
SUBSTR(xmlserialize(xmlagg(xmltext(CONCAT( ', ',CALLLOGP.CHORD#))) as 
VARCHAR(1024)), 3) AS Batches
FROM LS3DTA100A.CALLLOGP CALLLOGP inner join LS3DTA100A.CM CM on 
CM.CMSTKY=CALLLOGP.CHSTKY 
WHERE (CALLLOGP.CHOPENBY<>'') 
AND (CALLLOGP.CHCLOSDT=0) 
AND (CALLLOGP.CHACKNDT=0) 
AND (CALLLOGP.CHUPDATE=0) 
AND (CALLLOGP.CHCOMMENTS Like '%FRAME OOS%') 
AND (CALLLOGP.CHSTKY Like '00%') 
GROUP BY CALLLOGP.CHSTKY

错误消息是 SQL 错误 [42803]: [SQL0122] SELECT 列表中的 CMCSNM 或表达式无效。

【问题讨论】:

  • 您可以编辑您的帖子并添加问题吗?你在问什么?您是否想知道错误的含义、如何修复它或其他什么?我们不清楚。
  • 嗨,罗霍,非常抱歉。我对 SQL 很陌生,希望了解如何修复它

标签: db2 db2-400 iseries-navigator


【解决方案1】:
SQL0122N  A SELECT statement with no GROUP BY clause contains a column
      name or expression and a column function in the SELECT clause, or
      a column name or expression is contained in the SELECT clause but
      not in the GROUP BY clause.

您需要将 trim(CM.CMCSNM) 作为 GROUP BY 的一部分。例如:

GROUP BY trim(CM.CMCSNM), CALLLOGP.CHSTKY

【讨论】:

    猜你喜欢
    • 2017-12-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多