首页 > 解决方案 > 如何在我的 SQL 代码中找出这个逗号错误?

问题描述

我正在尝试运行一组子查询,但不确定问题出在哪里。

select 
    can, 
    sum(case when tax_year = 2018 then qty_req else 0 end) as TY18_esig,
    (select sum(case when tax_year = 2018 then qty_req else 0 end) as TY18_esig_unltd 
     from RPT_PCG_CART_CUR 
     where PRODUCT in ('eSignature Unlimited for ProSeries'),
    sum(case when tax_year = 2019 then qty_req else 0 end) as TY19_esig
from 
    RPT_PCG_CART_CUR
where 
    product IN ('eSignature Bank Jan 1 - Dec 31 2020', 'eSignature Unlimited for Lacerte')
    and cart_type = 'TRANSACTED'
group by 1
order by 1

我得到的错误是:

[代码:4856,SQL 状态:42601] [Vertica]VJDBC 错误:“,”或附近的语法错误

或者

[代码:4818,SQL 状态:0A000] [Vertica]VJDBC 错误:如果子查询不属于 GROUP BY,则不支持 SELECT 或 ORDER BY 中的子查询

标签: sqlvertica

解决方案


如评论中所述,您在标量子查询中缺少右括号/圆括号。

您应该在逗号之前在此行上有两个右括号:

where PRODUCT in ('eSignature Unlimited for ProSeries')),

推荐阅读