Vertica:子查询OR和co相关表错误

时间:2016-01-19 10:22:38

标签: sql vertica

模型数据

收入表

我正在尝试找出我的模型性能,即我在Model_year(2015)的模型_月(5)中的产品类别A得分为0.001,现在跟踪我跟踪的性能收入。

我声称模型编号有效期为3个月,所以要检查性能我希望在model_month之后看到3个月收入的模型表旁边的新coloumn。

SELECT a.*,
case    when (a.MODEL_MONTH<10 ) then   (select sum(b.net_revenue) from Revenue as b
                                        where ((b.cal_month > a.MODEL_MONTH OR  b.cal_month<a.MODEL_MONTH+4) AND b.cal_year=a.MODEL_YEAR)
                                                    and a.model_BU=b.prodcat a.model_region=b.hp_region)

        when (a.MODEL_MONTH>=10) then   (select sum(b.net_revenue) from Revenue b
                                        where (((b.cal_month > a.MODEL_MONTH and b.cal_year=a.MODEL_YEAR) || 
                                                (b.cal_month < a.MODEL_MONTH-9 and b.cal_year=a.MODEL_YEAR+1)) AND a.model_BU=b.prodcat))
        ELSE '0'
        END as Net_Revenue

        FROM ModelData as a
        limit 10        
        ;

我收到的错误是 错误:[Vertica] VJDBC错误:不支持非相等相关子查询表达式 SQLState:HY000 ErrorCode:4160

1 个答案:

答案 0 :(得分:0)

是的,这是正确的。

您可以阅读Vertica文档:

分析数据指南&gt;编写查询&gt;子查询&gt;子查询限制:

  

仅允许使用相等谓词

连接的子查询进行多重关联

有关Correlated Subquery

的一般信息