【问题标题】:replace sub query with join用连接替换子查询
【发布时间】:2018-04-27 14:11:52
【问题描述】:

我有以下疑问:

select distinct dco datpos 
from bkhis 
where dco>=(select min(dco) 
            from bkhis 
            where dag=TODAY - 1 and dco<=dag)

由于我们使用的 Informix 版本 (10.00),我们无法使用子查询,并且子查询中的聚合函数变得更加复杂。

谁能帮我用join重写这个查询。

【问题讨论】:

  • 你用的是什么版本?
  • 请给出表格的概要架构。 dcodag 都是 DATE 类型吗?还是其他类型?请显示一些示例数据和该数据的预期结果。您可能需要将 TODAY - 1 替换为某个固定日期(使用 MDY(4,27,2018) 表示法),以便查询将来可以处理示例数据。
  • 我想不出不支持该子查询的 Informix 版本——我认为即使是 1990 年之前的史前版本也可以处理子查询。
  • 我正在使用不支持嵌入式请求的informix 10。
  • 是时候升级了!几年前。你得到什么错误?请添加大纲架构和示例数据。

标签: sql join subquery informix


【解决方案1】:

在您的问题中,dcodatpos 之间没有逗号:... distinct dco datpos;我假设这是一个错字。

使用这个查询:

select distinct b.dco, b.datpos 
from bkhis b
JOIN bkhis b1 ON b.dco >= b1.dco
WHERE b1.dag=TODAY - 1 and b1.dco<=dag

【讨论】:

    猜你喜欢
    • 2013-02-12
    • 1970-01-01
    • 1970-01-01
    • 2015-02-09
    • 2016-11-10
    • 1970-01-01
    • 2019-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多