2016-07-25 4 views
0

Я пытаюсь сделать простой оператор выбора, но мне трудно это делать.SQL Server 2008: SELECT min (date)

У меня есть таблица с этими столбцами:

companyID, CompanyDept, DateAdded 

Я пытаюсь сделать отборное заявление, как это ...

Select CompanyID, CompanyDept 
where min(dateAdded) 

Итак, есть несколько мест для DateAdded - Я m пытается выбрать CompanyDept и COmpanyID в ближайшее время DateAdded.

EDIT: Выберите CompanyID, CompanyDEpt, где dateAdded = MIN, так как может быть три или более дат, таких как 10/1/2015, 11/12/2015, 1/4/2016 - (строки данных, которые я имею в виду) Я пытаюсь выбрать эту дату, глядя как можно скорее (10/1/2016)

+2

Выберите верхний 1 CompanyID, CompanyDept от {имя_таблицы} упорядочить по dateAdded убывание –

+2

Что должно произойти со связями? – shawnt00

+0

@ shawnt00 не уверен, что вы имеете в виду? – user6576015

ответ

2

Вы можете попробовать только получить первую запись, используя TOP 1 и упорядочить по дате.

SELECT TOP 1 
    CompanyID, CompanyDept 
FROM 
    Table 
ORDER BY 
    dateAdded 
+0

Простой и выполняет эту работу! – user6576015

1

Не совсем понятно, что вы хотите, но я думаю, это то, что вы ищете.

with sortedResults as 
(
    Select CompanyID 
     , CompanyDept 
     , ROW_NUMBER() over (partition by CompanyID, CompanyDept order by dateAdded desc) as RowNum 
    from YourTable 
) 

select CompanyID 
    , CompanyDept 
from sortedResults 
where RowNum = 1 
1
SELECT CompanyID, CompanyDept 
FROM TableName 
order by dateadd ASC 

Я предполагаю, что вы хотите, чтобы все записи, нет? вы хотите 1 запись, которая является старой или новым для старого сделать ASC и новый сделать DESC

select top (1)* from CompanyID, CompanyDept 
FROM TableName 
order by dateadd ASC 

, если не выше, читай ниже: Q.how вы знаете, что более раннюю дату? есть другое имя столбца, чтобы сравнить дату с.?

если да,

where dateadd <= that column 
order by dateadd ASC