2012-05-16 2 views
0

У меня есть очень простой вопрос, который пинает мою задницу.Как выбрать самую раннюю дату и данные, которые ей соответствуют

CUSTNMBR | first_date | SOPNUMBE 
---------------------------------------- 
3344771005 | 2012-05-03 | 334471961748   
3344771005 | 2012-04-04 | 334476873726 

В приведенной выше таблице я хочу вернуть самую раннюю дату вместе с custnumbr и sopnumbe так это будет выглядеть следующим образом

3344771005 | 2012-04-04 | 334476873726 

я использовал этот

Select a.CUSTNMBR, min(a.Tax_Date) as first_date, a.SOPNUMBE 
from SOP30200 as a 
where a.CUSTNMBR = '3344771005' 
Group by a.CUSTNMBR, a.SOPNUMBE 

, но это возвращает все переменные, и если я сбиваю a.sopnumbe в группе, он выдает ошибку.

ответ

2

Попробуйте это:

Select top 1 a.CUSTNMBR, a.Tax_Date as first_date, a.SOPNUMBE 
from SOP30200 as a 
where a.CUSTNMBR = '3344771005' 
order by a.Tax_Date asc 
+0

СПАСИБО СМОТРЕТЬ БОЛЬШЕ !!!!! была проблема, потому что я сгруппирован по SOPNUMBE? –

+0

Да, на основании вопроса, который не нужен группе, просто сортировка и верхняя часть 1, чтобы возвращать только верхнюю строку. – RThomas

0

Попробуйте

Select TOP 1 a.CUSTNMBR, min(a.Tax_Date)as first_date, a.SOPNUMBE 
from SOP30200 as a 
where a.CUSTNMBR = '3344771005' 
Group by a.CUSTNMBR, a.SOPNUMBE' 
ORDER BY 2 ASC 
+1

Вам нужно заказать по дате. –