我有一个表,其中包含以下条目
自定义ID | TransDate | 工作ID|
---|---|---|
1 | 2012-12-01 | 12 |
1 | 2012-12-03 | 45 |
1 | 2013-01-21 | 3 |
2 | 2012-12-23 | 11[/tr>|
3 | 2013-01-04 | 13 |
3 | 2013-12-24 | 16 |
4 | 2014-01-02 | 2 |
使用标量子查询来查找整个表中的最大日期:
SELECT *
FROM dbo.MyTable
WHERE TransDate >= '2012-12-01' AND
TransDate < (SELECT DATEADD(DAY, 1, MAX(TransDate)) FROM dbo.MyTable);
请注意,我在WHERE
子句中使用了一个严格的不等式(小于(来反对最晚日期一天。这将包括在最长日期当天或之前的所有日期。
您也可以声明变量,然后按如下所示使用它们:
DECLARE @minDate DATE = (SELECT MIN(TransDate) FROM Customer);
DECLARE @maxDate DATE = (SELECT MAX(TransDate) FROM Customer);
SELECT * FROM dbo.MyTable WHERE TransDate >= @minDate AND
TransDate <= @maxDate