#java #android #sql #ms-access
#java #Android #sql #ms-access
Вопрос:
Я получаю эту ошибку при выполнении следующего запроса в моем коде, но запрос отлично работает при тестировании его непосредственно в ms Access.
«Ошибка SQLSTATE [07002]: поле COUNT неверно: -3010 [Microsoft] [ODBC Драйвер Microsoft Access] Слишком мало параметров. Ожидаемый 1.»
select top 50 MainOrder.OrderNumber, OrderComponent.ArticleNumber, SupplierOrderMain.*, IIf(IsNull(InvoiceItems.Amount),0,InvoiceItems.Amount) AS expr1, IIF(IsNull(Customer.CustomerName),'N/A',Customer.CustomerName) AS expr2
from Customer RIGHT JOIN (((InvoiceItems RIGHT JOIN OrderComponent ON InvoiceItems.OrderComponent = OrderComponent.ID) LEFT JOIN MainOrder ON OrderComponent.OrderNumber = MainOrder.OrderNumber) RIGHT JOIN SupplierOrderMain ON OrderComponent.ID = SupplierOrderMain.OrderComponentID) ON Customer.CustomerNumber = MainOrder.CustomerNumber
where (Status = 'Status 1' or Status = 'Status 2')
order by MainOrder.OrderNumber desc, OrderComponent.ArticleNumber desc, SupplierOrderMain.Deadline desc
Ответ №1:
Попробуйте использовать собственный SQL «Is Null»:
select top 50
MainOrder.OrderNumber,
OrderComponent.ArticleNumber,
SupplierOrderMain.*,
IIf(InvoiceItems.Amount Is Null,0,InvoiceItems.Amount) AS expr1,
IIF(Customer.CustomerName Is Null,'N/A',Customer.CustomerName) AS expr2
и, возможно, Status — это зарезервированное слово:
where ([Status] = 'Status 1' or [Status] = 'Status 2')
Комментарии:
1. К сожалению, это ничего не изменило, но спасибо, что пытались мне помочь 🙂