【问题标题】:additional condition in a SQL query with min(Date)带有 min(Date) 的 SQL 查询中的附加条件
【发布时间】:2020-07-20 09:40:37
【问题描述】:

我有一个成员提供给我的下面显示的代码,但我不明白它的作用:

select pdam.*, pr.*
from "DAMPay" as pdam left join lateral
     (select min(pr."AsigStart") as startt
      from "PolsRisc" as pr
      where pdam."PRID" = pr."Index"
     ) pr
     on true;

代码从另一个表中提取开始的最小值。我想添加一个附加条件,例如:

where pdam."PAYDate" between '2020-06-01' and '2020-06-30'

我无法在没有错误的情况下插入条件。 另外,我只需要从 pr 表中查看 min(pr."AsigStart") 而不是所有列 (pr.*)。 谢谢

【问题讨论】:

  • 你尝试了什么,你得到了什么错误?

标签: sql postgresql join


【解决方案1】:

我想添加一个附加条件,例如:

您通常会在现有查询中添加 where 子句:

select pdam.*, pr.*
from "DAMPay" as pdam 
left join lateral (
    select min(pr."AsigStart") as startt
    from "PolsRisc" as pr
    where pdam."PRID" = pr."Index"
) pr on true
where pdam."PAYDate" between '2020-06-01' and '2020-06-30'

另外,我只需要查看pr 表中的min(pr."AsigStart") 而不是所有列 (pr.*)

查询已经这样做了。在外部查询中,pr 指的是子查询(而不是表PolsRisc)。子查询返回单个列,称为startt,因此pr.* 实际上等价于pr.startt

【讨论】:

  • 感谢@GMB 的查询。现在它可以工作了,但似乎返回的值 min(start) 不正确。但是你的解释很好。谢谢
猜你喜欢
  • 2016-07-26
  • 2017-05-07
  • 1970-01-01
  • 1970-01-01
  • 2020-11-01
  • 2013-08-29
  • 2020-04-13
  • 1970-01-01
  • 2021-10-23
相关资源
最近更新 更多