在关于创建的列

时间:2017-09-19 00:22:27

标签: sql oracle

我正在尝试找到一种在使用创建的列名称时在脚本中添加多行的好方法。这些是我试图操作的数据库结果和我的脚本。

PERSONID       myState      myAmount 
-----------------------------------
1               FL           100
1               TX           75
1               TX           50
1               FL           50 
1               FL           80
1               TX           55

Select PERSONID, (function to retrieve state) 
AS myState, (function to retrieve Amount) AS SUM(myAmount)
FROM Table
Group by myState

我期待我的结果

PERSONID       myState      myAmount 
-----------------------------------
1               FL           230
1               TX           180

上面的脚本对我不起作用。我得到"来自关键字未找到预期的#34;或者" myAmount;标识符无效"。我也尝试使用SUM(在函数周围检索数量,但它说"不是单组函数"。什么是修改脚本以获得预期值的好方法?

1 个答案:

答案 0 :(得分:2)

使用子查询或CTE:

select personid, mystate, SUM(myAmount)
from (select PERSONID, (function to retrieve state) AS myState,
             (function to retrieve Amount) 
      from Table
     ) p
group by personid, mystate;