Использование Microsoft SQL 2005 и VBscript.
Я делаю раздел сообщений для веб-сайта.У меня есть таблица с именем mail.Столбцы являются messageid, отправителем, получателем, телом и созданы.Messageid, отправитель и получатель являются типами данных BIGINT.Столбец body имеет тип данных nvarchar (max).Созданный тип данных datetime.
В этом примере предположим, что пользователь John имеет идентификатор пользователя 100.
Я пытаюсь выделить отдельных пользователей, отправивших сообщения John ИЛИПолученное сообщение от John AND упорядочить пользователей по времени из созданного столбца (или по messageid).Мой запрос, который я пытался выполнить, либо дает сбой, либо дает мне одного и того же пользователя более одного раза.
Этот запрос:
SQL = "SELECT DISTINCT otherperson FROM ("
SQL = SQL & "SELECT DISTINCT sender AS otherperson, messageid from message where message.receiver= '100' ORDER BY messageid DESC "
SQL = SQL & "UNION "
SQL = SQL & "SELECT DISTINCT receiver AS otherperson, messageid from message where message.sender= '100' ORDER BY messageid DESC ) results "
SQL = SQL & "ORDER BY messageid"
Выдает ошибку: предложение ORDER BY недопустимо в представлениях, встроенных функциях, производные таблицы, подзапросы и общие табличные выражения, если также не указан TOP или FOR XML.
SQL = "SELECT DISTINCT otherperson, messageid FROM ("
SQL = SQL & "SELECT DISTINCT sender AS otherperson, messageid from message where message.receiver= '100' ORDER BY messageid DESC "
SQL = SQL & "UNION "
SQL = SQL & "SELECT DISTINCT receiver AS otherperson, messageid from message where message.sender= '100' ORDER BY messageid DESC ) results "
SQL = SQL & "ORDER BY messageid"
ТАКЖЕ выдает ошибку: предложение ORDER BY недопустимо в представлениях, встроенных функциях, производных таблицах, подзапросахи общие табличные выражения, если только не указан TOP или FOR XML.
SQL = "SELECT otherperson FROM ("
SQL = SQL & "SELECT DISTINCT sender AS otherperson from message where message.receiver= '100' "
SQL = SQL & "UNION "
SQL = SQL & "SELECT DISTINCT receiver AS otherperson from message where message.sender= '100' ) results "
Этот запрос работает и дает мне отдельных пользователей, которые получили сообщения от Джона и отправили сообщения Джону, НО я не могу заказатьпо времени сообщения для каждого отдельного пользователя.
Вы можете использовать messageid (это уникальное число, увеличенное на 1) или созданным (это столбец с типом данных datetime)
Можеткто-нибудь помочь с этим?
TIA