CRM中多张关联表join的报表

用向导生成的原始报表只能包含两张关联的table,如果要显示多张关联的表的内容(三张以上),就得修改报表的DSMain数据源:

sample code

Code

说明:比如A,B,C,D四张表有关联,A.a1 = B.b1,B.b2 = C.c2,C.c3 = D.d3,则可以

select A.field1,B.field1,C.field1,D.field1 from A

     [inner/left outer]join B

     on A.a1 = B.b1

     where A.field = "***" and B.field = "***"

     [inner/left outer]join C

     on B.b2 = C.c2

     where ...

其中,第二个join是B和C的join而不是A和C的join(根据on B.b2 = C.c2),用join不用子查询的原因是子查询的效率比较低。

然后在数据源中就可以直接引用ABCD的字段,然后放到报表中去了。

如下代码实现将D、E中的数据放在一起,然后在body中显示(其中A->B->C->D,A->B->C->E):

 

Code

posted on 2009-02-24 17:25  GavinGan  阅读(398)  评论(0编辑  收藏  举报

导航