sql - 返回日期 超过目标日期 7 天 | SQL
问题描述
我试图让所有仍然开放的票在指定的“关闭”日期前 7 天,而“开票日期”在 7 天后。门票长这样:
Work Order: Description: Status: Task: End Date: Billed On:
---------------------------------------------------------------------------
INC1234 Broken Monitor OPEN 1 03/25/2021 03/25/2021
INC1235 No Audio OPEN 1 04/03/2021 04/01/2021
INC1234
理论上,只有当这张票符合条件时,查询才会返回。工单号、描述、开单日期和状态存储在一个表中,任务存储在另一个表中,结束日期存储在第三个表中。
我有的:
SELECT DISTINCT
wo.proposal AS 'Work Order',
wo.description AS 'Description',
wo.status_code AS 'Status',
phs.task AS 'Task',
wo.act_end_dt AS 'End Date',
fnd.tranx_date AS 'Billed On'
FROM
table1 wo
LEFT OUTER JOIN
table2 phs ON (wo.proposal = phs.proposal)
LEFT OUTER JOIN
table3 fnd ON (wo.proposal = fnd.proposal)
WHERE
wo.status_code = 'OPEN'
AND phs.act_end_dt <= DATEADD(day, -7, GETDATE())
AND fnd.tranx_date <= DATEADD(day, -7, GETDATE())
有时,一张票会收取多张账单。此查询似乎只获取第一个计费交易而不是最新交易。(因此,如果它在 3 月 23 日和 3 月 31 日有账单,它只会抓住 3 月 23 日,这是不正确的)我似乎无法让它抓住最新的账单日期并从那时起 7 天。
解决方案
工单、描述、状态代码和结束日期来自同一张表。任务来自另一个表。Billed On 来自另一张桌子。
你想获取一个票号对应表的最新交易。一种解决方案可以是定义一个视图,该视图将包含该表的子集,其中每个工单仅出现一次,并且具有最大日期。然后您可以在查询中使用该视图;只需用该视图替换 table3 即可。
视图可以写成一个聚合:
select proposal, max(tranx_date) from table3 group by proposal;
假设该视图名为 table3_view,那么您的查询可以像您一样通过将 table3 替换为 table3_view 来编写:
SELECT DISTINCT
wo.proposal AS 'Work Order',
wo.description AS 'Description',
wo.status_code AS 'Status',
phs.task AS 'Task',
wo.act_end_dt AS 'End Date',
fnd.tranx_date AS 'Billed On'
FROM
table1 wo
LEFT OUTER JOIN
table2 phs ON (wo.proposal = phs.proposal)
LEFT OUTER JOIN
table3_view fnd ON (wo.proposal = fnd.proposal)
WHERE
wo.status_code = 'OPEN'
AND
phs.act_end_dt <= DATEADD(day, -7, GETDATE())
AND
fnd.tranx_date <= DATEADD(day, -7, GETDATE())
推荐阅读
- php - 如何修复 Laravel 中的错误。'试图获得非对象的财产国家'
- android - 如何获得授予 Android 上已安装应用程序的权限?
- python - ValueError:发现样本数量不一致的输入变量:
- java - jacoco-maven-plugin:0.7.9 依赖问题
- sql - 返回与 SQL 结果中的每一行匹配的元素
- javascript - 为什么在 mysql2.js 中将 int(11) 列转换为字符串?
- mongodb - MongoDB libmongocrypt 问题和网络核心
- r - 您如何选择缩放热图?
- javascript - 反应应用程序以不同方式定位某些图像
- python - 在 bigquery 中动态创建 job_config 参数时出现问题