我正在尝试创建一个新列,该列可以显示历史表中的“创建日期”并与日期列“TIMESTAMP”中的当前表左连接,我使用 Oracle Interact...
我正在尝试创建一个新列,该列可以显示历史表中的“创建日期”,并与日期列“TIMESTAMP”中的当前表左连接,我使用 Oracle Interactive Reporting (IR) SQL 查询工具从数据库 DB2 中提取数据。历史表列为, DB2.TABLEH.TIMESTAMP B
当前表为 DB2.TIMESTAMP A
我创建了一个简单的合并查询,如下所示,运行良好
COALESCE(Min ( B.TIMESTAMP), A.TIMESTAMP)
但是如果第二个参数返回结果,我希望通过括号来说明哪个参数得到了满足。我尝试使用连接函数,但出现以下错误。这是完整的 SQL
SELECT A.ID,COALESCE(Min ( B.TIMESTAMP), '('CONCAT CAST(A.TIMESTAMP AS VARCHAR(10) ) CONCAT')') AS DATE_CREATED
FROM DB2.TABLE A
LEFT OUTER JOIN DB2.TABLEH B ON A.ID=B.ID AND A.COUNTRY= B.COUNTRY
WHERE A.COUNTRY='XXXXXXX'
GROUP BY A.ID, A.TIMESTAMP
请注意,我不能将其放在带有 CASE WHEN 语句的另一列中,而仅当第二个参数在同一结果中得到满足时才需要用括号显示结果。
下面是我在运行上述 SQL 时收到的错误
\'BIC00004。DAL010059。访问数据库时发生错误:算术运算或比较运算的操作数不可比较。SQLCODE=-401,SQLSTATE=42818,DRIVER=3.72.44扩展错误描述为:操作“{0}”的操作数的数据类型不兼容。\'
我希望结果显示如下。如果结果来自当前表中的第二个参数,则它应该位于括号中,如下所示。
ID | 创建日期 |
---|---|
001 | 2004年8月1日 |
002 | (2000年5月2日) |
输出结果