如何从具有当前日期条件的不同表中获取数据?

发布于 2025-01-09 03:25:36 字数 3140 浏览 0 评论 0原文

我有一个名为 WB.Email、WB.DATA 和 WB.APRIOD 的表。 我必须从 WB.Email 获取数据,条件是:其中当前日期 = 显示日期 -15 天;

要查找显示日期,请使用表 WB.DATA,选择有效 = 'Y 的日期列' 与其他条件(选择 PERIOD FROM WB.APRIOD WHERE VALID ='Y')

CVALID = 'V' 且当前日期 = 会话开始日期 - 15 天

最终查询是什么?

WB.Email :

周期HSIDCVALID
2022-09-15184V
2022-09-15184V
2022-09-15183V
2022-09-15183V

WB.DATA 表

周期HSIDSDATESTART
2022-09-151842022-03-11
2022-09-151842022-03-10
2022-09-151832022-01-06
2022-09-151832022-01-05

WB.APRIOD

有效期2022-
: 09-15Y
2021-09-15N
2020-09-15N
2029-09-15N

预期结果:例如当前日期为 24-02-22,会话开始日期(即 WB.DATA 表中的 SDATE 列为 2022-03-10)那么结果应该如下表所示。

期间HSIDCVALID
2022-09-15184V
2022-09-15184V

I have a table called WB.Email, WB.DATA and WB.APRIOD.
I have to fetch the data from WB.Email condition is: where current date = display date -15 days ;

To find the display date use table WB.DATA, select the date column where valid = 'Y' with the other condition (select PERIOD FROM WB.APRIOD WHERE VALID ='Y')

CVALID = 'V' and current date = session start date - 15 days

What would be the final query ?

WB.Email :

PERIODHSIDCVALID
2022-09-15184V
2022-09-15184V
2022-09-15183V
2022-09-15183V

WB.DATA table

PERIODHSIDSDATESTART
2022-09-151842022-03-11N
2022-09-151842022-03-10Y
2022-09-151832022-01-06N
2022-09-151832022-01-05Y

WB.APRIOD:

PERIODVALID
2022-09-15Y
2021-09-15N
2020-09-15N
2029-09-15N

Expected Result: for example current date is 24-02-22 and session start date i.e SDATE column in WB.DATA table is 2022-03-10 then result should come like below table.

PERIODHSIDCVALID
2022-09-15184V
2022-09-15184V

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

温柔戏命师 2025-01-16 03:25:36

如果您想要比较列,则使用

SELECT * FROM WB.EMAIL E
LEFT JOIN WB.DATA D ON E.PERIOD = D.PERIOD
LEFT JOIN WB.APRIOD A ON D.PERIOD = A.PERIOD
WHERE E.CVALID = 'V'
AND D.START = 'Y'
AND GETDATE() = DATEADD(DAY,-15,D.SDATE)

此处的结果仅显示电子邮件表,然后在列名称的右下角显示。

use this

SELECT * FROM WB.EMAIL E
LEFT JOIN WB.DATA D ON E.PERIOD = D.PERIOD
LEFT JOIN WB.APRIOD A ON D.PERIOD = A.PERIOD
WHERE E.CVALID = 'V'
AND D.START = 'Y'
AND GETDATE() = DATEADD(DAY,-15,D.SDATE)

here result show only Email table if you want diff column then right down your column name.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文