sách gpt4 ai đã đi

sql - 根据年份是否(完全)包含在日期范围内进行匹配

In lại 作者:行者123 更新时间:2023-12-02 02:37:12 28 4
mua khóa gpt4 Nike

我正在尝试根据日期范围连接两个表。

表A格式为:

ID CAT DATE_START DATE_END
1 10 2018-01-01 2020-12-31
2 15 2018-06-01 2018-07-01

表B格式为:

ID YEAR VALUE
1 2017 100
1 2018 110
1 2019 90
1 2020 30
2 2018 200

如果对于给定 ID,B.YEAR 中的任何日期都包含在从 A.DATE_START 到 A.DATE_END 的日期范围内,则应合并结果表,结果表应如下所示:

ID YEAR CAT VALUE
1 2018 10 110
1 2019 10 90
1 2020 10 30
2 2018 15 200

我尝试使用 extract(year from DATE_START)extract(year from DATE_START) 进行合并,但我无法在时间间隔中包含 2019 年中,这导致意味着 ID = 1 缺少 2019 年的值。

我还尝试使用 to_date(YEAR), 'YYYY') 进行合并,但 YEAR = '2018' 的生成日期是 '1.9.2018',它不在区间内ID = 2。非常感谢您的帮助。

1 Câu trả lời

像这样连接表:

select a.ID, b.YEAR, a.CAT, b.VALUE 
from TableA a inner join TableB b
on b.ID = a.ID
and b.year between extract(year from a.DATE_START) and extract(year from a.DATE_END)

请参阅thử nghiệm .
kết quả:

> ID | YEAR | CAT | VALUE
> -: | ---: | --: | ----:
> 1 | 2018 | 10 | 110
> 1 | 2019 | 10 | 90
> 1 | 2020 | 10 | 30
> 2 | 2018 | 15 | 200

关于sql - 根据年份是否(完全)包含在日期范围内进行匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64139885/

28 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com