![](/img/trans.png)
[英]Select statement with multiple rows from condition on values in single column affecting more than one column
[英]Select Statement for more than 1 value of a column for condition
我有Order表(OrderID,salemanID,ProductTypeID,月,年...),Saleman表(salemanID,...)和ProductTypes表(ProductID,Product_type ....)。
我试图让查询选择所有具有超过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 |
+------------+-------+------------+
请帮忙,非常感谢
希望这对您有所帮助。
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.