子查询加入错误

时间:2018-02-14 03:28:58

标签: sql oracle join subquery

  

"使用子查询,列出订单总数(包含该产品)的所有产品(产品编号,品牌和类别)大于500"

在子查询之前,我尝试使用连接:

SELECT PRODUCT.PRODUCT_NO, PRODUCT.BRAND,PRODUCT.PRODUCT_CATEGORY
FROM PRODUCT JOIN ORDERLINE
ON PRODUCT.PRODUCT_NO = ORDERLINE.PRODUCT_NO
WHERE SUM(ORDERLINE_NO) >= 500 ;

并收到以下错误;

ORA-00934: group function is not allowed here
00934. 00000 -  "group function is not allowed here"
*Cause:    
*Action:
Error at Line: 28 Column: 6

2 个答案:

答案 0 :(得分:0)

您几乎就在那里,但由于您已经使用了聚合功能,因此必须使用GROUP BY子句和HAVING子句来过滤聚合结果:< / p>

SELECT PRODUCT.PRODUCT_NO, 
       PRODUCT.BRAND,
       PRODUCT.PRODUCT_CATEGORY 
FROM PRODUCT JOIN ORDERLINE ON PRODUCT.PRODUCT_NO = ORDERLINE.PRODUCT_NO 
GROUP BY PRODUCT.PRODUCT_NO, 
       PRODUCT.BRAND,
       PRODUCT.PRODUCT_CATEGORY
HAVING COUNT(ORDERLINE_NO) >= 500 ;

并使用COUNT()代替SUM()

答案 1 :(得分:0)

试试这个:

不确定这是否是你想要的

var isKindOfClass = false
for aClass in classes {
    if obj.isKind(of: aClass) {
        isKindOfClass = true
        break
    }
}

if isKindOfClass {
    //do something
}