2010-02-08 7 views
2

천재 멤버들과 함께 유용한 사이트를 찾는 것이 좋습니다. 나는 한동안이 SQLite 문제에 대한 해결책을 찾으려고 노력 해왔다. Google은이 웹 사이트를 찾는 것을 제외하고는 절 도와주지 않았습니다. SQL 쿼리는 동일한 데이터베이스의 MSAccess 버전에서 올바르게 작동합니다.SQLITE INNERJOIN 악몽, 이것에 대한 해결책이 필요합니다

내 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"

+1

create table scripts를 게시하십시오. –

+0

해결책을 찾았습니다. Ron Savage가 제공 한 솔루션은 원활하게 작동합니다. – Shaamil

답변

6

은 일반적으로 그냥 열 이름을 잘못 철자 것을 의미 ... 당신의 청구서 테이블을 확인하고 확인 열은 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' 
+3

가비지 SQL을 무한히 읽기 쉽게 정리하는 +1. – NotMe

+0

감사합니다. Ron Savage, 많이 빚졌습니다. SQL 문은 완벽하게 작동합니다. – Shaamil

+0

도움이 될 수있어서 기쁩니다! –

0

문제는 대소 문자가 구분 될 수 있습니다. 내가 실수하지 않는다면 MS Access 필드 이름은 대소 문자를 구별하지 않습니다. SQLite 테이블 정의에서 올바른 대소 문자에 대해 문제가되는 열 이름을 확인하십시오.

관련 문제