Порядок сортировки раскрывающегося списка ASP.NET / SQL - PullRequest
0 голосов
/ 05 января 2010

Я пытаюсь исправить порядок сортировки моего раскрывающегося списка ASP.NET.

Проблема, с которой я столкнулся, заключается в том, что мне нужно выбрать отдельный серийный номер и организовать эти номера в DateTime Desc.

Однако я не могу ORDER BY DateTime, если использую DISTINCT без выбора поля DateTime в моем запросе.

Однако, если я выберу DateTime, он выберет каждое значение данных, связанное с одним серийным номером, и приведет к дублированию.

Цель моей страницы - отобразить данные для ВСЕХ серийных номеров или данные, связанные с одним серийным номером. Когда начинается новый цикл (потому что это новый производственный цикл), Serial возвращается к 1. Поэтому я также не могу просто организовать по серийному номеру.

Когда я использую следующую инструкцию SQL, список появляется в порядке, который мне нужен, но через некоторое время (обычно несколько часов) порядок меняется и, по-видимому, не имеет организованной структуры.

альтернативный текст http://img7.imageshack.us/i/captureky.jpg/

Я довольно новичок в ASP.NET / SQL, кто-нибудь знает решение моей проблемы.

Ответы [ 2 ]

3 голосов
/ 05 января 2010

Если у вас есть несколько дат для каждого серийного номера, то что вы хотите использовать для заказа? Если самое последнее, попробуйте это:

SELECT  SerialNumber,
        MAX(DateTimeField)
FROM    Table
GROUP BY SerialNumber
ORDER BY 2 DESC
0 голосов
/ 05 января 2010

Я не знаю, все ли согласны с этим, но когда я вижу DISTINCT в запросе, первая мысль, которая приходит мне в голову, - «Это неправильно». Как правило, DISTINCT не является необходимым и используется, когда человек, пишущий запрос, не очень хорошо знает, что он делает, и это может иметь место, поскольку вы сказали, что вы новичок в Sql.

Без полного знания вашей модели вам будет сложно помочь вам на сто процентов, но я бы сказал, что вы должны использовать предложение GROUP BY вместо DISTINCT, тогда вы можете упорядочить его правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...