如何获取PostgreSql中给定日期落在同一列的两个日期之间的记录

时间:2015-09-22 11:10:10

标签: database postgresql postgresql-9.1 postgresql-9.3

我的表格中有数据,例如代码指定代码和促销日期,我想在某个特定日期获得员工的指定。例如。

EmpCode DesignationCode PromotionDate
101         50           2010-01-25 
101         10           2014-01-01
101         11           2015-01-01
102         10           2009-10-01              
103         15           2015-01-01

现在如果在2014-02-01检查指定的话,应该如下结果

EmpCode DesignationCode PromotionDate
101         10           2014-01-01
102         10           2009-10-01              

任何人都可以告诉我应该写什么查询吗?

先谢谢。

1 个答案:

答案 0 :(得分:1)

您可以尝试:

CryptographicException

该查询首先过滤掉过去给定日期SELECT DISTINCT ON (EmpCode) EmpCode, DesignationCode, PromotionDate FROM mytable WHERE PromotionDate <= '2014-02-01' ORDER BY EmpCode, PromotionDate DESC 的任何记录,即PromotionDate

使用DISTINCT ON '2014-02-01',每(EmpCode)行获得一行。这是具有最新EmpCode的{​​{1}}(通过在PromotionDate子句中放置PromotionDate DESC来实现。)

Demo here