按最大值(日期)划分的SQL组
我有以下疑问。每个驾照号码都有许多检查日期。因此,记录可以如下所示:按最大值(日期)划分的SQL组,sql,sql-server-2005,Sql,Sql Server 2005,我有以下疑问。每个驾照号码都有许多检查日期。因此,记录可以如下所示: InspectionDate DriverLicenseNumber 2010-01-02 00:00:00 123 2010-01-05 00:00:00 123 2011-01-05 00:00:00 345 SELECT MAX(InspectionDate), DriverLicenseNumber FROM #Test GROUP BY
InspectionDate DriverLicenseNumber
2010-01-02 00:00:00 123
2010-01-05 00:00:00 123
2011-01-05 00:00:00 345
SELECT
MAX(InspectionDate),
DriverLicenseNumber
FROM #Test
GROUP BY DriverLicenseNumber
为什么对于同一个驾照号码,我仍然可以获得多个日期
谢谢下面的代码说明了这实际上不是一个问题,正如Martin在上面所说的,肯定还有其他问题
CREATE TABLE #test
(
a DATETIME,
id INT
)
INSERT INTO #test VALUES ('20100102', 123)
INSERT INTO #test VALUES ('20100105', 123)
INSERT INTO #test VALUES ('20110105', 345)
SELECT MAX(a), id
FROM #test
GROUP BY id
DROP TABLE #test
下面的代码说明了这实际上不是一个问题,正如Martin在上面所说的,肯定还有其他事情在发生
CREATE TABLE #test
(
a DATETIME,
id INT
)
INSERT INTO #test VALUES ('20100102', 123)
INSERT INTO #test VALUES ('20100105', 123)
INSERT INTO #test VALUES ('20110105', 345)
SELECT MAX(a), id
FROM #test
GROUP BY id
DROP TABLE #test
试试这个,它会测试Damien的想法
SELECT
MAX(InspectionDate),
CAST(DriverLicenseNumber AS INT)
FROM
#Test
GROUP BY
CAST(DriverLicenseNumber AS INT)
或者可能是这个
SELECT
MAX(InspectionDate),
LTRIM(RTRIM(UPPER(DriverLicenseNumber)))
FROM
#Test
GROUP BY
LTRIM(RTRIM(UPPER(DriverLicenseNumber)))
试试这个,它会测试Damien的想法
SELECT
MAX(InspectionDate),
CAST(DriverLicenseNumber AS INT)
FROM
#Test
GROUP BY
CAST(DriverLicenseNumber AS INT)
或者可能是这个
SELECT
MAX(InspectionDate),
LTRIM(RTRIM(UPPER(DriverLicenseNumber)))
FROM
#Test
GROUP BY
LTRIM(RTRIM(UPPER(DriverLicenseNumber)))
只需将表中的DriverLicenseNumber更改为整数,查询将按原样工作。只需将表中的DriverLicenseNumber更改为整数,查询将按原样工作。DriverLicenseNumber列的类型是什么。其中可能包含空格/非打印字符吗?GROUP BY每个DriverLicenseNumber只返回一行。肯定还有其他原因。这就是我的想法。DriverLicenseNumber是一个VARCHAR25,复制的值完全相同。@user。你能将CASTDriverLicenseNumber作为varbinary25添加到选择列表中,看看相同的数字之间是否有任何差异吗?是的,我正在将数据传递到excel,它删除了许可证号码前面的00,所以当我进行重复检查时,它说这些是重复的。小男孩帮了忙,谢谢!DriverLicenseNumber列的类型是什么。其中可能包含空格/非打印字符吗?GROUP BY每个DriverLicenseNumber只返回一行。肯定还有其他原因。这就是我的想法。DriverLicenseNumber是一个VARCHAR25,复制的值完全相同。@user。你能将CASTDriverLicenseNumber作为varbinary25添加到选择列表中,看看相同的数字之间是否有任何差异吗?是的,我正在将数据传递到excel,它删除了许可证号码前面的00,所以当我进行重复检查时,它说这些是重复的。小男孩帮了忙,谢谢!