2013-12-13 2 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); 

Это неправильное предложение Select и как его изменить, чтобы получить данные из трех таблиц.Извлечение данных из трех таблиц

+0

Вы должны опубликовать структуру своих таблиц. Как это трудно понять, где вы поступили не так –

+0

Что вы подразумеваете под _this is wrong_? Ошибка синтаксиса? Не получить результат, как вы хотите? –

+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

Сэр, я получаю эту ошибку «Неоднозначное имя столбца« ПоставщикID » – Michael

+1

Используйте' M.SupplierID = @ providerID', и вам также, вероятно, потребуется указать имя_компании и PaymentStatus с любым подходящим псевдонимом таблицы. –

+1

Вы должны префикс столбца имена с псевдонимом таблицы. В этом случае s.supplierID и т. д. я отредактировал свой ответ. –

Смежные вопросы