b12345678b 2013-09-14 07:41 采纳率: 0%
浏览 3092

两张无关联表 根据时间这么累计金额?求SQL语句或解决方案

表A id datetime pay(收入表)
表B id Bdatetime pay(支出表)

A:
1 2012-08-19 22.00
2 2012-09-23 32.00
3 2012-09-30 33.00
B:
1 2012-08-20 -11.00
2 2012-09-24 -20.00
输出:
C:(id Cdatetime pay paycount)
1 2012-08-19 22.00 22.00
2 2012-08-20 -11.00 11.00
3 2012-09-23 32.00 43.00
4 2012-09-24 -20.00 23.00

  • 写回答

3条回答

  • 马欢欢 2013-09-14 09:08
    关注

    一个sql语句应该无法完成。
    建议使用TABLE函数实现。TABLE函数使用不负责。
    例:

    create or replace type t_test as object(
    id integer,
    rq date,
    mc varchar2(60)
    )
    /
    create or replace type t_test_table as table of t_test
    /
    
    create or replace function f_test_pipe(n in number default null) return t_test_table PIPELINED 
    as 
    v_test t_test_table := t_test_table();
    begin 
    for i in 1 .. nvl(n,100) loop
    pipe row(t_test(i,sysdate,'mc'||i)); 
    end loop; 
    return; 
    end f_test_pipe; 
    /
    select * from table(f_test_pipe(20))
    /
    
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据