-1

源表是:

+----------------------------+
| Col A | Col B |    Col C   |
+-------+--------------------+
|  100  |    1  |  1/2/2012  |
|  100  |    2  |  1/2/2012  |
|  100  |    3  |  1/2/2012  |
|  100  |    1  |  5/2/2012  |
|  100  |    2  |  5/2/2012  |
|  100  |    3  |  5/2/2012  |
+-------+-------+------------+

期望的结果:

+-----------------------------+
| Col A | Col B  |    Col C   |
+-------+--------+------------+
|  100  |    1   |   5/2/2012 |
|  100  |    2   |   5/2/2012 |
|  100  |    3   |   5/2/2012 |
+-------+--------+------------+

我们如何使用 SQL 获取它?

我试过了

SELECT * FROM Table A
GROUP BY Col C
HAVING Col C = max(Col C) AND Col A = '100'

但它似乎不起作用。

4

3 回答 3

1

不是这样吗?

SELECT ColA, ColB, MAX(ColC) ColC
FROM   TableName
GROUP  BY ColA, ColB
于 2013-05-03T16:30:18.897 回答
0

http://sqlfiddle.com/#!2/7d6f5/6/0

您可以使用MAX()。请看上面的小提琴

SELECT a, b, MAX(c) FROM a GROUP BY a, b
如果这是您的架构,请考虑
CREATE TABLE a( a INT, b INT, c DATE );

于 2013-05-03T16:36:02.217 回答
0

我在 ms 访问中很快做到了这一点,

SELECT 
 cola, colb, max(colc)
FROM MyTbl
where cola=100
group by cola,colb

在此处输入图像描述

于 2013-05-03T16:43:15.593 回答