2010-08-18 2 views
0

Я пытаюсь сделать отчет, в котором будут показаны продукты, купленные клиентами. У меня есть Products, TransDetails, TransHeaders, Customers Столы и я должен выбрать все продукты, и для каждого продукта я должен показать продажи для каждого клиента. , если клиент не купил какой-либо конкретный продукт, он все равно должен быть виден в отчете с 0 продажами. пользователь должен иметь возможность запускать этот отчет для конкретного клиента или группы клиентов. Проблема, перед которой я сейчас сталкиваюсь, если я включаю таблицу клиентов в свой sql-запрос, тогда она показывает только продукты, купленные клиентом, и не показывает продукты, которые клиент не купил.Crystal Reports SQL Server Несколько таблиц и внешних ссылок

SELECT Products.SalesCategory, Products.ProductCode, Products.ProductTitle, Customers.CustomerCode, Transdetails.quantity 
    From Products left outer join Transdetails on Products.ProductID= Transdetails.ProductID 
      Left Outer Join Customers on Customers.CustomerId= Transdetails.CustomerID 
    Where SalesCategory like 'XYZ' and Products.Status like 'A' 
    and customers.customercode like 'BEST' 
    order by SalesCategory, ProductCode, ProductTitle 

ответ

0

Это, как представляется, потому что ваша статья Where включает в себя выбор на customers.customercode like 'BEST' - это по существу превращает внешнее соединение клиентам в внутреннее соединение.

Чтобы выбрать все продукты с SalesCategory как «XYZ» и статус, как «А», вместе с любыми продажами клиентов с customercode как «лучшие», попробуйте следующее:

SELECT Products.SalesCategory, Products.ProductCode, Products.ProductTitle, Transcust.CustomerCode, Transcust.quantity 
From Products left outer join 
     (SELECT Customers.CustomerCode, Transdetails.ProductID, Transdetails.quantity 
     FROM Transdetails 
     Join Customers on Customers.CustomerId= Transdetails.CustomerID 
     WHERE customers.customercode like 'BEST') Transcust 
     on Products.ProductID= Transcust.ProductID 
Where SalesCategory like 'XYZ' and Products.Status like 'A' 
order by SalesCategory, ProductCode, ProductTitle 
+0

@shahsali: аналогичный подход должен быть возможен для большего количества таблиц - почему бы не изменить свой вопрос, чтобы включить полный запрос, желательно, включая параметры? Также вы можете указать, какую версию Crystal вы используете? –

+0

спасибо, что я нашел решение, удалив ссылку между продуктом и таблицей транзакций. хотя отчет занимает больше времени, чем обычно. благодарит за вашу помощь. – user423487

0

путем удаления связи между продуктом и таблица данных транзакций я решил эту проблему, поэтому я выбираю все продукты и выбираю транзакцию всего клиента.

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