Я использую базу данных SQL Server и выбираю записи для отображения информации о контракте. Соглашение может быть активным, неактивным, ожидающим ответа или ожидающим платежа.Ошибка запроса запроса ORDER BY
Мой пользователь хочет сетки для отображения результатов в следующем порядке:
- В ожидании ответа
- Ожидает оплаты
- Просроченная
- Активный
- Неактивный
Я пытаясь использовать следующий код для достижения этого, но это ws ошибка, говорящая о синтаксической ошибке рядом со словом default.
Что не так с порядком по заявлению?
Try
sql = "SELECT ContractID, CustAcc, DateStart, DateRenew, Fee, Agreement, OtherDetails, " _
& "DateSent, TimeSent, ReminderName, ReminderEmail FROM dbo.tblContracts " _
& "ORDER BY FIELD(Agreement, 'AWAITING RESPONSE', 'AWAITING PAYMENT', 'ACTIVE', 'INACTIVE')"
conAd = New OleDb.OleDbDataAdapter(sql, con)
conset = New DataSet
conAd.Fill(conset)
ugModules.DataSource = conset
Catch ex As Exception
errorLog(ex.Message, ex.StackTrace)
MsgBox("Failed to retrieve contract information, refer to error log")
End Try
EDIT
После изменения моего кода в соответствии с предложением от @Solarflare, я теперь получил следующий код;
sql = "SELECT ContractID, CustAcc, DateStart, DateRenew, Fee, Agreement, OtherDetails, " _
& "DateSent, TimeSent, ReminderName, ReminderEmail FROM dbo.tblContracts " _
& "ORDER BY CASE Agreement WHEN 'AWAITING RESPONSE' THEN 1 WHEN 'AWAITING PAYMENT' THEN 2 " _
& "WHEN 'OVERDUE' THEN 3 WHEN 'ACTIVE' THEN 4 WHEN 'INACTIVE' THEN 5 END"
Однако результат не такой, как ожидалось. Результат вместо этого находится ниже
поэтому INACTIVE в основном наверху, за которым следует сочетание AWAITING RESPONSE и INACTIVE и т. Д. - Почему это может быть?
Какой тип SQL? – Santi
Какой тип данных является «Соглашением»? Похоже, вы пытаетесь перевести его (или что-то) на этот текст? Также. «По умолчанию» isnt в SQL, поэтому его непонятная ошибка на самом деле из этого фрагмента – Plutonix
Похоже, вы пытаетесь использовать функцию mysql на сервере mssql. Взгляните на [Что такое возможность MS SQL Server, аналогичная функции MySQL FIELD()?] (Http://stackoverflow.com/questions/3892406/what-is-the-ms-sql-server-capability-similar -to-the-mysql-field-function) – Solarflare