2012-06-11 3 views
0

У меня есть таблица, в которой я нарисовал следующую выборку из:Выберите Max Дата в год День Месяц Формат

Item <other columns> year month day 
---- -- ------------ ---- ----- --- 
VX4O GL 630.5938  2012 7  20 
BX2T GL 0   2012 7  13 
MWB806I GL 92004.72  2012 6  15 
4XU  GL 17.125  2012 7  20 
VL4O GL 130.5  2012 7  20 
MWB806I GL 92004  2012 10 26 
MWB806I GL 92005  2012 11 30 
3PU  GL 25   2012 7  20 
VC4O GL 630.6094  2012 7  20 
MWB806I GL 92005  2012 11 2 

Первая колонка Item, последние три колонки год, месяц, день.

Как выбрать максимальную дату для каждого элемента?

+0

Посмотрите на эту тему: http://stackoverflow.com/questions/1015689/sql-select-max-and-accompanying-field/2345892#2345892 – JaggenSWE

+0

Нет, его в таблицу в База данных SQL – Flashgordan

+0

Is - это таблица с несколькими полями или одно поле с разделителем с запятой? – Jake1164

ответ

2
SELECT Item, MAX(CONVERT(DATETIME, RTRIM([year]) 
    + RIGHT('0'+RTRIM([month]), 2) 
    + RIGHT('0'+RTRIM([day], 2) 
) 
FROM dbo.table 
GROUP BY Item; 

Теперь вы действительно должны рассмотреть возможность фиксации этой схемы. Почему вы храните год/месяц/день отдельно? Все, что он делает, делает вычисления, подобные этому, намного сложнее, и предотвращает любую правильную проверку (вы можете иметь контрольные ограничения для основных вещей, но они намного сложнее для таких вещей, как високосные годы). И это не спасает вас в пространстве (на самом деле вы теряете пространство, если месяц/день - int, или если вы можете использовать smalldatetime).

+0

Это работает только в том случае, если элемент представляет собой отдельное поле, а не одну строку с разделителями-запятыми. – Jake1164

+0

@ Jak1164 логично предположить, что, поскольку ОП утверждал, что последние три значения являются отдельными столбцами, что, несмотря на форматирование, мы говорим об отдельных столбцах здесь. –

+0

У меня, к сожалению, нет слишком большого контроля над форматом даты. Это дамп данных из приложения, которое я не могу изменить .... – Flashgordan

Смежные вопросы