躲不开的心痛 2018-07-24 07:45 采纳率: 0%
浏览 528
已采纳

运用存储过程和游标,帮我写一个查询的语句,最后输出结果,可以先不考虑笛卡尔积

Comm.serv:用户表
正常在用用户:state = 2HA
CDMA用户:product_id = 379
Serv_id:用户编码 acct_nbr:用户号码

Comm.serv_acct:账户用户关联关系表
有效数据 state='10A'
Acct_id:账户编码

Comm.acct:账户表
Acct_name:账户名称

Acct.acct_balance:余额表
Balance:余额

Acct.ACCT_ITEM_201805:5月费用表
Amount:费用
Acct.ACCT_ITEM_201806:6月费用表
Amount:费用

Bill.acct_item_aggr_11807:实时费用表(在billdb)
Charge 实时费用

Acct.acct_credit:信用度表
Credit_amount:信用度值

Sms_info:短信发送表
Id:唯一值,消息ID
Msisdn:电话号码
FLAG:SEND
MSG:短信内容
Get_date:短信发送时间
Send_date = get_date
其他字段填空

欠费=余额-4、5月份话费-实时话费-信用度

要求:
1、统计出来所有用户欠费金额,统计信息包括:账户名称 ,账户ID,用户ID,余额、4月份话费、5月份话费、实时话费、信用度、欠费金额
2、对于欠费的用户,发送短信。短信内容:“xxx您好,截止到yyyy-mm-dd hh24:mi:ss,您已经欠费xx元,请您及时缴费! ”图片说明

  • 写回答

2条回答 默认 最新

  • csdn_87 2018-07-25 07:03
    关注

    这不是一个普通的查询吗?
    短信 就是把欠费 小于0的插入到短信表里面

    select c.acct_name,c.acct_id,a.servd_id,d.balance,e.amount_5,f.amount_6,g.charge,h.credit_amount,
    d.balance - nvl(e.amount_5,0) - nvl(f.amount_6,0) - g.charge - h.credit_amount as Arrears
    from serv a
    join serv_acct b on (a.servd_id = b.servd_id and b.state = '10A')
    join acct c on (b.acct_id = c.acct_id)
    join balance d on (d.acct_id = b.acct_id)
    left join (select serv_id,sum(amount) as amount_5 from acct_item_201805 group by serv_id) e
    on (a.servd_id = e.servd_id)
    left join (select serv_id,sum(amount) as amount_6 from acct_item_201806 group by serv_id) f
    on (a.servd_id = f.servd_id)
    left join (select serv_id,sum(charge) as charge from acct_item_aggr_11807@bill_228 group by serv_id) g
    on (a.servd_id = g.servd_id)
    left join acct_credit h on (h.acct_id = b.acct_id)
    where a.state = '2HA'
    and a.product_id = '379';

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作