日期:2014-05-20  浏览次数:21219 次

水晶报表,多个表通过同一列进行分组
需求是这样的,从数据库中查询出来8张表,
而这八张表有一个共同的字段
现在希望这八张表通过这一个共有字段进行分组

如下:(列举两张表的例子)



日期 位置 机器 产品编号 类别
2011/9/27 16:01 A 12 NULL NULL
2011/9/27 16:01 A 12 NULL NULL
2011/9/27 16:01 A 12 1 农副食品


  位置: A
收现金: 500
收信用卡: 200


日期 位置 机器 产品编号 类别
2011/9/27 16:27 B 13 3 洗涤用品
2011/9/27 16:27 B 13 NULL NULL


  位置: B
收现金: 200
收信用卡: 20



上面内容来自两张表,请问下,这两张表怎么 通过 位置 这个字段进行分组呢,
两个表中都有位置


(实际情况,我想通过8张表分组,这8张表都有位置这个字段)



各位高手帮帮忙

------解决方案--------------------
select * from (
select a,b,c,d,1 e from test1
union all
select a,b,c,d,2 e from test2
union all
select a,b,c,d,3 e from test3 ) tmp order by e,a
1 2 3 那个是每个表要放在页面的顺序

如果你还要把位置信息加进来的话
select tmp.*,w.* from (
select a,b,c,d,1 e from test1
union all
select a,b,c,d,2 e from test2
union all
select a,b,c,d,3 e from test3 ) tmp ,wzxx w
where tmp.a = w.id order by tmp.e,tmp.a
这样会有几个冗余列,你想要位置信息,直接去冗余列里面取就好了。
要用union all连接,不要用union