2014-01-14 3 views
0

У меня есть таблица заказов (OrderID, salemanID, ProductTypeID, месяц, год ...), таблица Saleman table (salemanID, ...) и ProductTypes (ProductID, Тип продукта....).Выберите Statement для более чем 1 значения столбца для условия

Я попытался получить запрос на выбор всего номера заказа, который имеет более 1 типа продукта и салман на заказ.

Вот мой запрос:

Select O.OrderID, S.SalemanName, P.Product_type, count(P.productID) 
From Order O join Saleman s ON O.salemanID = s.salemanID 
      join ProductTypes P ON O.ProductTypeID = P.ProductID 
Where O.month= '01' 
and O.year='2014' 
Group by O.OrderID, S.SalemanName, P.Product_type 
Having count(P.productID)>1 

Выход заключается в следующем:

+------------+-------+------------+ 
|Order Number|Saleman|Product Type| 
+------------+-------+------------+ 
|1234  |Andrew |Tables  | 
+------------+-------+------------+ 
|1234  |Scott |Tables  | 
+------------+-------+------------+ 
|4321  |Andrew |Chairs  | 
+------------+-------+------------+ 
|4321  |John |Chairs  | 
+------------+-------+------------+ 

То, что я хочу, это один заказ с более чем 1 Типы продуктов, как этот

+------------+-------+------------+ 
|Order Number|Saleman|Product Type| 
+------------+-------+------------+ 
|1234  |Andrews|Tables  | 
+------------+-------+------------+ 
|1234  |Barton |Chair  | 
+------------+-------+------------+ 
|4321  |Andrews|Beds  | 
+------------+-------+------------+ 
|4321  |John |Chairs  | 
+------------+-------+------------+ 
|4321  |John |Desks  | 
+------------+-------+------------+ 

Пожалуйста помощь, большое спасибо

ответ

0

Надеюсь, это поможет вам.

SELECT O.OrderID [Order Number], S.SalemanName [Saleman], P.Product_type [Product Type] --, Count(P.productID) 
FROM (
      SELECT x.OrderID 
      FROM [Order] x 
        Inner Join ProductTypes PT On x.ProductTypeID = PT.ProductID 
      WHERE x.month= '01' 
        And x.year='2014' 
      GROUP BY x.OrderID 
      HAVING Count(PT.ProductID) > 1 
     ) O 
     Left Outer Join [Order] OD on O.OrderID = OD.OrderID 
     Left Outer Join Saleman S On OD.salemanID = S.salemanID 
     Left Outer Join ProductTypes P On OD.ProductTypeID = P.ProductID 
+0

Как-то я думаю о графе (отчетливый ProductID)> 1 будет работать – Jenny

+0

я получил его, просто добавить отчетливый в HAVING Count (отчетливый PT.ProductID)> 1, он отлично работает. Спасибо Jade – Jenny

+0

Хотя я получил его, когда я добавляю сумму (Product_price) в, это не правильно - гораздо больше, чем ожидалось, я думаю, потому что таблица заказов была объединена дважды – Jenny

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