有表如下:
收入表(A)
日期         数量
2017.1.1 2
2017.1.2 3
2017.1.3 4
2017.1.4 1
2017.2.2 10
2017.2.3 15
2017.2.4 20
2017.2.5 2
2017.2.6 5
支出表(B)
日期           数量
2017.1.11    2
2017.1.2    12
2017.1.3    4
2017.1.4    1
2017.2.2    10
2017.2.3    15
2017.2.4    20
2017.2.5    2
2017.2.16   11
生成收支明细表如下:
收入日期   收入数量  支出数量   收入日期
2017.1.1   2         12               2017.1.2
2017.1.2         3          4                2017.1.3
2017.1.3         4         1                 2017.1.4
2017.1.4         1          2                2017.1.11
小计           10         19
2017.2.2        10        10                 2017.2.2
2017.2.3    15        15                 2017.2.3  
2017.2.4          20        20                 2017.2.4
2017.2.5           2        2                   2017.2.5 
2017.2.6           5      11                 2017.2.16    
小计                  52     58
我用select不知怎么做?
有可能收入和支出的时间也有多有少,不一定都是对齐的,比如,收入在一个月内是5天,而支出是20天。
我的问题其实是二个表的合并和统计,即将收入明细表和支出明细表合并成一个并,并且要表示出收入的时间,数量,客户(我的表中没体现),还有就是支出的时间,数量,客户(我的表中没体现),并且每月小计一次。
合并以后的表格最好是这样的结构:收入日期  数量  客户  支出日期   数量  客户
请教各位高手。

解决方案 »

  1.   

    SUM合计 
      

  2.   

    SELECT '一月收入',a.*
    FROM a
    WHERE SUBSTRING(DATE,6,2)='01'
    UNION ALL
    SELECT '合计','',SUM(num)
    FROM a
    WHERE SUBSTRING(DATE,6,2)='01'
    UNION ALL
    SELECT '一月支出',b.*
    FROM b
    WHERE SUBSTRING(DATE,6,2)='01'
    UNION ALL
    SELECT '合计','',SUM(num)
    FROM b
    WHERE SUBSTRING(DATE,6,2)='01'
    UNION ALL
    SELECT '二月支出',A.*
    FROM A
    WHERE SUBSTRING(DATE,6,2)='02'
    UNION ALL
    SELECT '合计','',SUM(num)
    FROM a
    WHERE SUBSTRING(DATE,6,2)='02'
    UNION ALL
    SELECT '二月支出',b.*
    FROM b
    WHERE SUBSTRING(DATE,6,2)='02'
    UNION ALL
    SELECT '合计','',SUM(num)
    FROM b
    WHERE SUBSTRING(DATE,6,2)='02' 这样不知道符合要求吗?横向拼接真心不知道怎么做