使用proc sql在表中创建新列时,需要将其他四列相乘

使用proc sql在表中创建新列时,需要将其他四列相乘,sql,sas,Sql,Sas,我正在创建一个新表,按州统计账单总额。总账单包括每个州的价格、销售数量、每个客户的折扣和销售税。我需要一个新的表格,给我50个州和每个州的总帐单 我试着简单地将这4个字段相乘,但这似乎不起作用 proc sql; create table jarod.total bill as select State_CD, Sale_ID, PriceOUT*(1-Discount)*(1+State Sales Tax) from jarod.sales order by

我正在创建一个新表,按州统计账单总额。总账单包括每个州的价格、销售数量、每个客户的折扣和销售税。我需要一个新的表格,给我50个州和每个州的总帐单

我试着简单地将这4个字段相乘,但这似乎不起作用

proc sql;
create table jarod.total bill as
select
    State_CD,
    Sale_ID,
    PriceOUT*(1-Discount)*(1+State Sales Tax)
from jarod.sales
    order by State_CD;
quit; 

我想获得每笔交易的总销售价格,然后以某种方式按状态求和(也不确定如何做),但由于错误,我的表无法创建。

我想您需要一个聚合查询:

proc sql;
create table jarod.total_bill as
    select State_CD, sum(PriceOUT*(1-Discount)*(1+State Sales Tax)) as total_billing
    from jarod.sales
    group by State_CD;
quit; 

我相信这将帮助您,尝试一下^^

gordon,这似乎可以获得总账单,但我希望按州计算总账单。有什么建议吗?@Jarod。“按州计费总额”大概是指按州计费。这就是这个查询所计算的。这也是我所假设的。。。当我输入代码时,你建议每个州都有相同的总数,这是没有意义的。@Jarod。您只选择了
state\u cde
sum()
<如果存在其他列,则code>proc sql会执行一些有趣的操作。请确保在GROUP BY子句中包含正确的变量。如果您忘记了组,SAS将计算所有观察值的总和,并重新合并到每个记录。如果分组方式不正确,您将看到关于重新合并统计数据的注释。