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

3表交叉报表

2013-06-26 
三表交叉报表本帖最后由 xl_smlie 于 2013-06-04 15:46:58 编辑基础表A:A_DMA_MCLX1A11101A2110101A311010

三表交叉报表
本帖最后由 xl_smlie 于 2013-06-04 15:46:58 编辑


基础表A:
A_DM     A_MC  LX
1        A1    1
101      A2    1
10101    A3    1
10102    A4    1
... 
2        A5    2
201      A6    2
20101    A7    2
20102    A8    2
... 
基础表B:
B_DM    B_MC
1001     B1
100101   B2
1002     B3
100201   B4
...
业务表C:此表DM_1的值属于基础表A列LX为1;DM_2的值属于基础表A列LX为2
B_DM      DM_1      DM_2     JE
100101    10101     20101    100
100201    10102     20101    200
...
-------
希望得到结果表:
B_DM     B_MC     DM_1     MC1     DM_2     MC2     JE
1001      B1                                       300
100101    B2                                       100
                  1        A1                      100
                  101      A2                      100
                  10101    A3                      100
                                   2        A5     100
                                   201      A6     100
                                   20101    A7     100
100201    B4                                       200


                  1        A1                      200
                  101      A2                      200
                  10102    A4                      200
                                   2        A5     200
                                   201      A6     200
                                   20101    A7     200
              


[解决办法]
非要用存储过程的话, 要建立一个表变量, 里面的字段包括你要的结果, 再加上一个层次字段作为最后输出结果排序用.  把符合条件的数据插入到表变量里,层次字段给与正确的值,需要空白的字段则给与空字符.

热点排行