Sql Query Sorting Issues - PullRequest
       22

Sql Query Sorting Issues

0 голосов
/ 20 февраля 2012

У меня есть 2 поля в моей базе данных (sql server 2008), а именно updateDate [Datetime] и calldate [datetime]. SQL-запрос, который я выполняю, чтобы получить данные из базы данных:

Select * from [Clients] where [Timestamp] < GetDate() ORDER BY calldate, updateDate

Теперь проблема заключается в том, что callbackdate имеет значение по умолчанию минимальной даты, поэтому, если дата не пройдена, добавляется минимальная дата, я хочу добавить проверку по вышеуказанному запросу, чтобы не сортировать записи, для которых установлено значение calldate. минимальное значение даты. Например, если calldate является минимальной датой, то эта запись должна быть отсортирована по дате обновления. Возможно ли получить что-то вроде этого.

Любые предложения или советы будут высоко оценены. Спасибо

Ответы [ 3 ]

1 голос
/ 20 февраля 2012
Select YourColumns
from [Clients] 
where [Timestamp] < GetDate() 
order by 
    case when callDate = minimumDate then updateDate else callDate end, 
    updateDate
1 голос
/ 20 февраля 2012

попробуйте это (если минимальная дата 2009-01-01)

ORDER BY (CASE WHEN CallDate=DATE('2009-01-01') THEN RenewDate else CallDate END)
1 голос
/ 20 февраля 2012
DECLARE @minimumdate DATETIME

SELECT @minimumdate = MIN(calldate) FROM [Clients]

Select * 
from [Clients] 
where [Timestamp] < GetDate() 
ORDER BY CASE WHEN calldate = @minimumdate THEN updateDate ELSE calldate END
...