首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

怎么采用mysql实现oracle的decode()函数的来解决一个查询有关问题?

2012-09-16 
如何采用mysql实现oracle的decode()函数的来解决一个查询问题??急!急!我在oracle里写了如下一个查询统计语

如何采用mysql实现oracle的decode()函数的来解决一个查询问题??急!急!
我在oracle里写了如下一个查询统计语句,那位能帮我用mysql实现一下,谢谢了,oracle的sql语句如下:
select t.serv_id,
  sum(decode(t.acct_item_type_id,
  11000,
  t.charge,
  11002,
  t.charge,
  0)) 分摊信息费,
  sum(decode(t.acct_item_type_id, 11003, t.charge, 0)) 初装费,
  sum(decode(t.acct_item_type_id, 11004, t.charge, 0)) 移机费,
  sum(decode(t.acct_item_type_id,
  11007,
  t.charge,
  20020,
  t.charge,
  20021,
  t.charge,
  0)) 开通费,
  sum(decode(t.acct_item_type_id, 11010, t.charge, 0)) 过户费,
  sum(decode(t.acct_item_type_id, 10030, t.charge, 0)) 配件扣费,
  sum(decode(t.acct_item_type_id, 10031, t.charge, 0)) 购猫费
  from acct_item t
  where t.billing_cycle_id = '2009080101'
  and t.state = '20D'
  group by t.serv_id

[解决办法]
or
case t.acct_item_type_id
when 11003 then t.charge
else 0 end
[解决办法]
sum(
case t.acct_item_type_id
decode(t.acct_item_type_id, 
when 11000 then t.charge
when 11002 then t.charge
else 0 end) 分摊信息费,
[解决办法]

SQL code
select t.serv_id,                     sum(case t.acct_item_type_id when 11000 then t.charge when 11002 then t.charge else 0 end) 分摊信息费,                     sum(case t.acct_item_type_id when 11003 then t.charge else 0 end) 初装费,                     sum(case t.acct_item_type_id when 11004 then t.charge else 0 end) 移机费,                     sum(case t.acct_item_type_id when 11007 then t.charge when 20020 then t.charge when 20021 then t.charge else 0 end) 开通费,                     sum(case t.acct_item_type_id when 11010 then t.charge else 0 end) 过户费,                     sum(case t.acct_item_type_id when 10030 then t.charge else 0 end) 配件扣费,                     sum(case t.acct_item_type_id when 10031 then t.charge else 0 end) 购猫费                   from acct_item t                 where t.billing_cycle_id = '2009080101'                   and t.state = '20D'                 group by t.serv_id
[解决办法]
decode 换成

IF()
或者
CASE WHEN

详细用法你可以参考一下MYSQL的文档。
MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html

热点排行