MAX组的SQL组(日期)

时间:2011-02-25 14:15:36

标签: 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 DriverLicenseNumber

为什么我仍然会获得多个多个日期和相同的驾驶执照号码?

由于

3 个答案:

答案 0 :(得分:3)

下面的代码说明这实际上并不是一个问题,就像马丁上面说的那样,必然会有其他事情发生。

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

答案 1 :(得分:3)

尝试这个,它应该测试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)))

答案 2 :(得分:1)

只需将DriverLicenseNumber更改为表中的整数,然后您的查询将按原样运行。