关于分析函数(急求sql)

hdevil 2007-08-29 04:11:00
这个sql能用分析函数改写 或者优化不 太慢了


select SUM(DECODE(a.summary_acct_item_id, '100000', a.CHARGE, '')) CHARGE100000,
SUM(DECODE(a.summary_acct_item_id, '100001', a.CHARGE, '')) CHARGE100001,
SUM(DECODE(a.summary_acct_item_id, '100002', a.CHARGE, '')) CHARGE100002,
SUM(DECODE(a.summary_acct_item_id, '100003', a.CHARGE, '')) CHARGE100003,
SUM(DECODE(a.summary_acct_item_id, '100004', a.CHARGE, '')) CHARGE100004,
SUM(DECODE(a.summary_acct_item_id, '100005', a.CHARGE, '')) CHARGE100005,
SUM(DECODE(a.summary_acct_item_id, '100006', a.CHARGE, '')) CHARGE100006,
SUM(DECODE(a.summary_acct_item_id, '100007', a.CHARGE, '')) CHARGE100007,
SUM(DECODE(a.summary_acct_item_id, '100008', a.CHARGE, '')) CHARGE100008,
SUM(DECODE(a.summary_acct_item_id, '100009', a.CHARGE, '')) CHARGE100009,
SUM(DECODE(a.summary_acct_item_id, '100010', a.CHARGE, '')) CHARGE100010,
SUM(DECODE(a.summary_acct_item_id, '100011', a.CHARGE, '')) CHARGE100011,
SUM(DECODE(a.summary_acct_item_id, '100012', a.CHARGE, '')) CHARGE100012,
SUM(DECODE(a.summary_acct_item_id, '100013', a.CHARGE, '')) CHARGE100013,
SUM(DECODE(a.summary_acct_item_id, '100014', a.CHARGE, '')) CHARGE100014,
SUM(DECODE(a.summary_acct_item_id, '100015', a.CHARGE, '')) CHARGE100015,
SUM(DECODE(a.summary_acct_item_id, '100016', a.CHARGE, '')) CHARGE100016,
SUM(DECODE(a.summary_acct_item_id, '100017', a.CHARGE, '')) CHARGE100017,
SUM(DECODE(a.summary_acct_item_id, '100018', a.CHARGE, '')) CHARGE100018,
SUM(DECODE(a.summary_acct_item_id, '100019', a.CHARGE, '')) CHARGE100019,
SUM(DECODE(a.summary_acct_item_id, '100020', a.CHARGE, '')) CHARGE100020,
SUM(DECODE(a.summary_acct_item_id, '100021', a.CHARGE, '')) CHARGE100021,
SUM(DECODE(a.summary_acct_item_id, '100022', a.CHARGE, '')) CHARGE100022,
SUM(DECODE(a.summary_acct_item_id, '100023', a.CHARGE, '')) CHARGE100023,
SUM(DECODE(a.summary_acct_item_id, '100024', a.CHARGE, '')) CHARGE100024,
SUM(DECODE(a.summary_acct_item_id, '100025', a.CHARGE, '')) CHARGE100025,
SUM(DECODE(a.summary_acct_item_id, '100026', a.CHARGE, '')) CHARGE100026,
SUM(DECODE(a.summary_acct_item_id, '100027', a.CHARGE, '')) CHARGE100027,
SUM(DECODE(a.summary_acct_item_id, '100028', a.CHARGE, '')) CHARGE100028,
SUM(DECODE(a.summary_acct_item_id, '100032', a.CHARGE, '')) CHARGE100032,
SUM(DECODE(a.summary_acct_item_id, '100031', a.CHARGE, '')) CHARGE100031,
SUM(DECODE(a.summary_acct_item_id, '100033', a.CHARGE, '')) CHARGE100033,
a.STAFF_ID,
a.CUST_ID,
a.CUST_NAME,
a.billing_cycle_id,
a.CUST_ADDRESS_NAME
from (select * from area where area_id in (101)) b, acct_income_2005 a
where a.billing_Cycle_Id >= 10702
and a.billing_Cycle_Id <= 10707
and b.area_id = a.area_id
group by a.STAFF_ID,
a.cust_id,
a.cust_name,
a.billing_cycle_id,
a.cust_address_name
...全文
177 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
summersure 2007-08-30
  • 打赏
  • 举报
回复
jf
mantisXF 2007-08-29
  • 打赏
  • 举报
回复
优化同上,这种情况用分析函数解决不了问题 ...
WangZWang 2007-08-29
  • 打赏
  • 举报
回复
首先在 summary_acct_item_id, billing_Cycle_Id 和area_id列上建立索引,且可以改为

Select .....
from area b, acct_income_2005 a
where b.area_id = a.area_id and a.area_id=101 and
a.billing_Cycle_Id >= 10702
and a.billing_Cycle_Id <= 10707
group by a.STAFF_ID,
a.cust_id,
a.cust_name,
a.billing_cycle_id,
a.cust_address_name

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧