gpt4 book ai didi

postgresql - 查询为两个日期之间的日期系列提供重复的薪水列

转载 作者:行者123 更新时间:2023-11-29 12:19:24 25 4
gpt4 key购买 nike

您好,我希望日期和相应的值在 postgres 中是唯一的我有一张表,其中给出了开始日期、结束日期和薪水。我想计算日期系列和该期间的工资。 table 就像

Salary Startdate    Enddate
1000 "2015-09-28" "2015-09-30"

我希望查询结果是这样的

dates      salary
2015-09-28 1000
2015-09-29
2015-09-30

我正在使用的查询是

select salary, generate_series("startdate", "enddate", '1 day'::interval)::date as date from tablename
where id=4

但是它给出的结果是

dates      salary
2015-09-28 1000
2015-09-29 1000
2015-09-30 1000

最佳答案

您需要一个子选择来从 tablename 创建一系列日期,然后需要一个 LEFT JOIN 来添加薪水数据:

SELECT d.dates, t.salary
FROM (
SELECT generate_series(startdate, enddate, interval '1 day') dates
FROM tablename) d
LEFT JOIN tablename t ON t.startdate = d.dates;

假设您的表中有更多薪水数据,您必须更改连接子句以包含更多限定符,例如 employee_id 等。

关于postgresql - 查询为两个日期之间的日期系列提供重复的薪水列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34715387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com