2013-05-03 2 views
-1

Стол источник:GROUP BY с MAX Дата

+----------------------------+ 
| 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' 

Но не кажется, что это будет работать.

+0

Что [РСУБД] (http://en.wikipedia.org/wiki/Relational_database_management_system), который вы используете? 'RDBMS' означает * Реляционная система управления базами данных *. 'RDBMS является основой для SQL' и для всех современных систем баз данных, таких как MS SQL Server, IBM DB2, Oracle, MySQL и т. Д. ... –

+0

Я использую SQL Server 2008 – Rikin

+0

SELECT * FROM Таблица A WHERE Col C =" 5/2/2012 ": P –

ответ

1

Не так ли?

SELECT ColA, ColB, MAX(ColC) ColC 
FROM TableName 
GROUP BY ColA, ColB 
+1

Вы можете добавить« WHERE »для фильтрации только определенного значения примера' ColA', 'WHERE ColA = '100'' –

+0

+1 Именно то, как оно должно быть разрешено. – MrSimpleMind

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 );

+0

Мое предложение состоит в том, чтобы опубликовать свой запрос из скрипта sql в вашем ответе. Не просто разместите ссылку на скрипт sql. – Taryn

0

Я сделал это быстро доступа мс,

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

enter image description here