SQLITE INNERJOIN Кошмар, нужно решение этой проблемы - PullRequest
2 голосов
/ 08 февраля 2010

Приятно найти такой полезный сайт с гениальными участниками. Я уже некоторое время пытаюсь найти решение этой проблемы SQLITE. Google не помог мне, кроме как найти этот сайт. SQL-запрос отлично работает на версии MSAccess той же базы данных.

Вот мой SQL-оператор, который мне не помог.


SELECT Invoices.InvoiceNumber, Invoices.Quantity,Invoices.Code, Invoices.Price,Invoices.Discount, Invoices.InvoiceGrandTotal, Employees.EmployeeName, Customers.CustomerName, Invoices.DateOfInvoice, [price]*[Quantity] AS Total, Customers.Address, Products.Description,Products.Unit  
    FROM Products 
        INNER JOIN (
            (   
                ( Invoices INNER JOIN InvoiceDetails 
                    ON Invoices.InvoiceNumber = InvoiceDetails.InvoiceNumber
                ) INNER JOIN Customers 
                    ON Invoices.CustomerID = Customers.CustomerID
            ) INNER JOIN Employees 
                ON Invoices.UserID = Employees.EmployeeID
        ) ON Products.Code = InvoiceDetails.Code  
    WHERE (((InvoiceDetails.InvoiceNumber)='10111'));

Сообщение об ошибке:"Cannot compile Select-Statement: no such column: Invoices.InvoiceNumber"

Ответы [ 2 ]

6 голосов
/ 08 февраля 2010

Обычно это просто означает, что вы неправильно написали имя столбца ... проверьте таблицу счетов-фактур и убедитесь, что столбец - InvoiceNumber, а не "Invoice_Number" или что-то подобное ...

Кроме того, гораздо более простая версия этого запроса будет выглядеть примерно так ... без всякого странного вложения:

SELECT 
   Invoices.InvoiceNumber, 
   Invoices.Quantity,
   Invoices.Code, 
   Invoices.Price,
   Invoices.Discount, 
   Invoices.InvoiceGrandTotal, 
   Employees.EmployeeName, 
   Customers.CustomerName, 
   Invoices.DateOfInvoice, 
   [price]*[Quantity] AS Total, 
   Customers.Address, 
   Products.Description,
   Products.Unit 
FROM
   Invoices

   JOIN Employees 
      ON Employees.EmployeeID = Invoices.UserID 

   JOIN Customers 
      ON Customers.CustomerID = Invoices.CustomerID

   JOIN InvoiceDetails 
      ON InvoiceDetails.InvoiceNumber = Invoices.InvoiceNumber

   JOIN Products
      ON Products.Code = InvoiceDetails.Code

WHERE 
   InvoiceDetails.InvoiceNumber = '10111'
0 голосов
/ 08 февраля 2010

Я думаю, что проблема может быть связана с чувствительностью к регистру. Если я не ошибаюсь, имена полей MS Access не чувствительны к регистру. Проверьте правильность имени столбца в правильном регистре в определении таблицы SQLITE.

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