我正在尝试创建一个新列,它可以显示历史表中的“创建日期”,该历史表与日期列“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,驱动程序=3.72.44 扩展错误描述为: 运算“{0}”的操作数的数据类型不兼容。”
我希望结果像这样显示。如果结果来自当前表的第二个参数。它应该放在括号中,如下所示。
身份证 | 创建日期 |
---|---|
001 | 2004年8月1日 |
002 | (05-02-2000) |