请教¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥

banjinmu 2009-08-25 11:15:35
按要求写sql语句 1 代表 欠费,0 代表不欠费

name money qianfei(欠费)
a 120 0
b 120 1
c 60 0
a 120 1
a 120 1
b 120 0

要取如下格式

name 应缴money 实缴money 欠费money qianfei(欠费)
a 360 120 240 1
b 240 120 120 1
c 60 60 0 1
...全文
76 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
小灰狼W 2009-08-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 banjinmu 的回复:]
狂浪 漏掉qianfei(欠费)了
select name,nvl(sum(money),0)应缴money,
        nvl(sum(decode(qianfei,0,money)),0)实缴money,
        nvl(sum(decode(qianfei,1,money)),0)欠费money ,
        decode(欠费money,0,0,1 )qianfei(欠费)
  from tt
  group by name
  order by name 
[/Quote]

不是,是我看不懂你要的结果里那个列有什么用,而且怎么得出的
这是一个分组查询,你那么decode不行
a和b有欠费,后面那个欠费值是1
可是c呢,没有欠费,为什么也是1?
再说,从欠费money里就可以看出是否有欠费,要最后一列没用吧?
banjinmu 2009-08-25
  • 打赏
  • 举报
回复
狂浪 漏掉qianfei(欠费)了
select name,nvl(sum(money),0)应缴money,
nvl(sum(decode(qianfei,0,money)),0)实缴money,
nvl(sum(decode(qianfei,1,money)),0)欠费money ,
decode(欠费money,0,0,1 )qianfei(欠费)
from tt
group by name
order by name
阿三 2009-08-25
  • 打赏
  • 举报
回复
select name,sum(money),sum(yijiao),sum(qianfei)
from
(
select
name,
money,
decode(qianfei,0,money,0) yijiao,
decode(qianfei,1,money,0) qianfei
from t_y
)
group by name
小灰狼W 2009-08-25
  • 打赏
  • 举报
回复
稍作修改
select name,nvl(sum(money),0)应缴money,
nvl(sum(decode(qianfei,0,money)),0)实缴money,
nvl(sum(decode(qianfei,1,money)),0)欠费money
from tt
group by name
order by name
小灰狼W 2009-08-25
  • 打赏
  • 举报
回复
 select name,sum(money)应缴money,
sum(decode(qianfei,0,money))实缴money,
sum(decode(qianfei,1,money))欠费money
from tt
group by name
order by name

不知道你结果里最后一列是什么意思
opps_zhou 2009-08-25
  • 打赏
  • 举报
回复
你是不是还漏了一张表,记录应缴费的?

select a.id, a.money, b.money,
a.money - b.money as 欠费,
b.qianfei
from tab1 a, --应交费的表
(select id, money from tab2 /*欠费表*/ where qianfei = 1) b
where a.id = b.id
小灰狼W 2009-08-25
  • 打赏
  • 举报
回复
这个好办
select name,sum(money) 应缴money, 
sum(decode(qianfei,0,money,0)) 实缴money,
sum(decode(qianfei,1,money,0)) 欠费money,
decode(sum(qianfei),0,0,1) qianfei
from tt
group by name
order by name
banjinmu 2009-08-25
  • 打赏
  • 举报
回复
按要求写sql语句 1 代表 欠费,0 代表不欠费

name money qianfei(欠费)
a 120 0
b 120 1
c 60 0
a 120 1
a 120 1
b 120 0

要取如下格式

name 应缴money 实缴money 欠费money qianfei(欠费)
a 360 120 240 1
b 240 120 120 1
c 60 60 0 0

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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