当有多个行用于特定引用时返回单个行

问题描述 投票:0回答:1

我的SQL技能因不使用而变得生锈,并希望在以下方面寻求帮助。

我有一个产品表,一个客户表和一个订单参考表。客户可以在同一订购参考中订购1个或多个产品。

我编写的SQL查询是:

SELECT O.ORDER_REF, P.Product, C.Name
FROM PRODUCTS AS P
INNER JOIN ORDER_REFS AS O ON P.ORDER_REF = O.ORDER_REF
INNER JOIN CUST AS C ON P.ORDER_REF = C.ORDER_REF
WHERE P.PROD_CODE =`A`
AND P.ORDER_DATE = '2019-11-01'
ORDER BY O.APP_REF ASC;

我只希望购买产品'A'的客户。我上面的查询结果提供了所有订购“ A”的产品,还提供了A&B和A&C等产品。

表O,就像这样,每个ORDER_REF有多个行:

ORDER_REF PRODUCT NAME
1     |     A     | Mr X
1     |     B     | Mr X
2     |     A     | Mr Y
3     |     A     | Mr T
4     |     A     | Mr S
5     |     A     | Mr W
5     |     C     | Mr W

我想要的结果将显示以下内容,因为他们只购买了'A'

 ORDER_REF  PRODUCT     NAME 
    2     |     A     | Mr Y
    3     |     A     | Mr T
    4     |     A     | Mr S

我尝试了SELECT DISTINCT,但无济于事,因此将不胜感激任何帮助/指针。

我的SQL技能因不使用而变得生锈,并希望在以下方面寻求帮助。我有一个产品表,一个客户表和一个订单参考表。客户可以订购1或...

sql greatest-n-per-group
1个回答
0
投票

我只希望只购买产品'A'的客户。

© www.soinside.com 2019 - 2024. All rights reserved.