sql-server - TSQL - 匹配另一个表中两个日期之间的日期
问题描述
我目前有两个表,tbl_Invoices
InvoiceNumber NextBillingDate
------------------------------
100 3/15/21
200 3/31/21
300 4/15/21
400 5/15/21
和tbl_GLPeriods:
GLPeriod PeriodStartDate PeriodEndDate
----------------------------------------------
250 3/3/21 4/3/21
251 4/4/21 5/2/21
252 5/3/21 6/3/21
我需要一个视图,它返回一个列,其中提供了下一个计费日期的 GL 期间,即:
InvoiceNumber NextBillingPeriod
---------------------------------
100 250
200 250
300 251
400 252
如何查询以查找一列是否位于另一表的两列之间?我对如何做到这一点感到茫然,想着用CASE
.
编辑:我目前在哪里,结构上不起作用,但它显示了我目前正在尝试的内容:
SELECT
*,
CASE
WHEN tbl_Invoices.NextBillingDate BETWEEN (SELECT PeriodStartDate FROM tbl_GLPeriods) AS stdt
AND (SELECT PeriodEndDate FROM tbl_GLPeriods) AS endt
THEN endt.GLPeriod
END AS NextBillingPeriod
FROM
tbl_Invoices
感谢@Charlieface 解决了这个问题:
select tbl_Invoices.InvoiceNumber, tbl_GLPeriods.GLPeriod
from tbl_Invoices
left join tbl_GLPeriods on tbl_Invoices.NextBillingDate between tbl_GLPeriods.PeriodStartDate AND tbl_GLPeriods.PeriodEndDate
解决方案
select InvoiceNumber, (select GLPeriod from tbl_GLPeriods where NextBillingDate between PeriodStartDate and PeriodEndDate) 'NextBillingPeriod' from tbl_Invoices
推荐阅读
- javascript - 如何计算午夜 24 小时格式的时差
- java - 如何使用新的导航架构组件保存片段的实例
- javascript - 背景视频播放列表
- git - 如何管理多语言项目的位存储库
- ios - 如何通过页脚单元格在表格视图中使用委托?
- docker - 缺少高山包 py3-scipy
- jenkins - 詹金斯如何设置所有带有前缀“blah”的作业,以便在超过时间限制时停止
- ionic4 - toast.present() 在 Ionic 4 中失败
- mysql - 没有 MariaDB 引擎的 Ubuntu 19.04 上的 MySQL 服务器
- vb.net - 将 DLL 导入从 VB.NET 转换为 VB6