【发布时间】:2017-09-07 19:12:16
【问题描述】:
我有一个财政年度的开始日期和结束日期范围:7/1/16 - 6/30/17
我的查询中包含的日期字段是付款日期,可以在 2017 年 6 月 30 日之外。
例子:
Company PayonDate
Bose 9/30/17 <---Outside the 6/30/17 date range and will not show on report. This date will pay in advance.
我想显示日期范围内的最后付款日期:
例子:
Company PayonDate
Bose 4/1/17 <----Actual paid on date vs. pay on date in the future within the date range.
有没有办法做到这一点?
提前致谢!
更新:
SELECT
ven.VendorID,
ven.Name AS [Vendor Name],
inv.ReferenceNumber AS [Ref. No],
inv.InvoiceNumber AS [Invoice No],
inv.Payment AS Payment,
SubMax.[Pay On Date]
FROM inv
INNER JOIN
(
SELECT MAX(ips.PayOnDateTime) AS [Pay On Date], VendorID
from inv
LEFT JOIN ips ON ips.SourceID = inv.SourceID AND ips.InvoiceID = inv.InvoiceID
Group by VendorID
) SubMax
on inv.VendorID = SubMax.VendorID
INNER JOIN ven ON inv.SourceID = ven.SourceID AND inv.VendorID = ven.VendorID
LEFT JOIN ips ON ips.SourceID = inv.SourceID AND ips.InvoiceID = inv.InvoiceID
WHERE FacilityID = 'HMC'
AND SubMax.[Pay On Date] BETWEEN @StartDate AND @EndDate
AND inv.ReferenceNumber LIKE '__-____'
ORDER BY ven.Name, SubMax.[Pay On Date]
【问题讨论】:
-
类似
SELECT MAX(PayonDate) FROM Table WHERE PayonDate >= '2016-07-01' AND PayonDate < '2017-07-01' -
谢谢雅各布。实际上,我的子查询中有它。
-
PayonDate 是什么数据类型?我们可以在这里提供帮助,但我们需要一些细节。这是一个很好的起点。 spaghettidba.com/2015/04/24/…
-
PayonDate 的格式为 YYYY-MM-DD 00:00:00:000。谢谢你的帮助!我还在问题中添加了我的代码。
-
格式化是什么意思?我在问数据类型是什么?我感觉它是一个 varchar 数据类型。你的变量的数据类型是什么?这些东西将在这里成就或破坏您的代码。
标签: sql sql-server tsql date ssms