2013-12-13 57 views
0
   cmd =new SqlCommand("Select i.InvoiceNo,i.TotalAmount, 
        i.PaymentStatus,m.MovieID,m.MovieName, s.CompanyName 
        From InvoiceDetails i INNER JOIN Movie m ON 
        i.InvoiceNo=m.InvoiceNo and Supplier s 
        Inner Join Movie m ON s.SupplierID=m.SupplierID 
        Where [email protected] AND 
        [email protected] AND [email protected]", 
        conPayment); 

這是錯誤的選擇語句以及如何修改它以成功從三個表中獲取數據。從三個表中檢索數據

+0

你應該發佈你的表結構。像這樣很難知道你出錯的地方 –

+0

_this是什麼意思是錯誤的?語法錯誤?沒有得到你想要的結果? –

+0

ya.just一個語法錯誤。如果我有兩個表可以成功檢索記錄,但是三個表我不知道檢索它。 – Michael

回答

1

一件事情跳出我是一個JOIN操作不當:

您有:

... 
from InvoiceDetails i 
inner join Movie m on i.InvoiceNo = m.InvoiceNo 
    and Supplier s 
inner join Movie m on s.SupplierID = m.SupplierID 
... 

它應該是:

select i.InvoiceNo,i.TotalAmount,i.PaymentStatus,m.MovieID,m.MovieName,s.CompanyName 
from InvoiceDetails i 
inner join Movie m on i.InvoiceNo = m.InvoiceNo 
inner join Supplier s on s.SupplierID = m.SupplierID 
where s.SupplierID = @supplierID 
    and s.CompanyName = @companyName 
    and i.PaymentStatus = @ddlPaymentStatus 

您已經加入Movie一次,你必須再加入supplier也。你這樣做的方式肯定會給你一個語法錯誤。曾經因爲有兩個具有相同別名的表,然後它也會抱怨不知道供應商,因爲它會期望在之前加入的表中有一列。

+0

先生,我得到這個錯誤「不明確的列名'SupplierID' – Michael

+1

使用'M.SupplierID = @ supplierID',您可能需要在公司名稱和PaymentStatus前面加上適當的表別名。 –

+1

您必須在列在這種情況下,s.supplierID等我編輯我的答案 –