为什么我收到语法错误22-322和错误76-322?

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

我的代码是下面的。 我不是高级的SAS或SQL我的语句是下面从SAS企业指南8.2使用Proc sql.我想做的是通过独特的PrescriberID有RX_PMPM,DrugCost_PMPM,PDL利率GDR利率旁边的每个PresriberID。

我得到语法错误ERROR 22-322ERROR 76-322。

proc sql;
create table work.ABC_2020_out as
select  Distinct PrescriberId, 
from work.VitMDKPI_Report
        sum(PaidAmt)/count(distinct CardholderId) as RX_PMPM,
        sum(DrugCost)/count(distinct PrescriptionNumber) as DrugCost_PMPM,
            Count (PDL) as Total_NONANDPDL,
        Count (BrandGenericCode) as Total_BrandGeneric,
        Case when PDL=Y then 'PREFPDL'
        Case when BrandGenericCode=G then 'Generic'
        End
        PDL/Total_NONANDPDL as PDL Rate
        Generic/Total_BrandGeneric as GDR Rate
        Group by PrescriberId;


quit;
group-by syntax case where-clause calculated-field
1个回答
0
投票

解析器会看到的第一个错误是这部分无效。

select Distinct PrescriberId,
from work.VitMDKPI_Report

由于第一行末尾的逗号,你要求选择的变量名为 from 并命名为 work.VitMDKPI_Report,这不是一个有效的变量名称,因为有句号,而且语法无效,因为PROC SQL需要用 as 当设置变量名称时,使用关键字。

你似乎把FROM子句放在了变量列表的中间,它应该放在变量列表之后,GROUP BY子句之前。 它应该放在变量列表之后,GROUP BY子句之前。

还有其他一些问题,包括看起来像一个错误形成的CASE子句,试图引用在SELECT子句中创建的变量而不使用 CALCULATED 关键字和可能无效的变量名。 但如果没有一些示例数据和该数据的预期输出,这些就很难诊断了。

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