Справка по SQL с отчетливым и упорядоченным по дате - PullRequest
1 голос
/ 09 июля 2011

Следующее работает хорошо, но я хочу, чтобы в нем также была отдельная опция

select  convert(nvarchar(10),datestart,103) 
from o_course
order by  convert(datetime, datestart, 103) desc

, но если я изменил ее на

select  distinct convert(nvarchar(10),datestart,103) 
from o_course
order by  convert(datetime, datestart, 103) desc

, я получил бы

Сообщение 145, Уровень 15, Состояние 1, Строка 1 Элементы ORDER BY должны отображаться в списке выбора, если указано SELECT DISTINCT.

Моя цель - получить все различные даты из даты и времениполе и сортировать их по убыванию.

Любая помощь будет оценена.

Ответы [ 4 ]

1 голос
/ 11 июля 2011

Используйте GROUP BY вместо отдельных.

select convert(nvarchar(10),datestart,103) 
from o_course
group by convert(nvarchar(10),datestart,103) 
order by convert(datetime, datestart, 103) desc
1 голос
/ 09 июля 2011

Отделите DISTINCT от вида вот так.

select 
    convert(nvarchar(10), foo.datestart, 103) 
from 
    (SELECT DISTINCT datestart FROM o_course) foo
order by 
    foo.datestart DESC
0 голосов
/ 09 июля 2011

Я думаю, что это поможет вам:

select somedate from (select  distinct convert(nvarchar(10),datestart,103) as somedate  
from o_course) t order by somedate desc
0 голосов
/ 09 июля 2011

Сообщение об ошибке говорит вам, что не так.Это один из способов исправить это:

select  distinct convert(nvarchar(10),datestart,103) 
from o_course
order by  convert(nvarchar(10), datestart, 103) desc
...