这种报表不是一个查询就能完成的, 你可以建立一个临时表, 然后使用代码一行一行的查询到数据填入临时表中, 行程图2这样的结果, 然后把结果输出至报表或者excel, 画上线填上颜色就ok了
只要excel能生成的效果都可以实现
题主这个问题不存在简单的回答,需要具体情况具体分析解决。多表汇总跟单表汇总本质上是一样的,基本方法无非就是使用聚合函数(通常需要配合group by子句一起使用)来检索出汇总信息。多表汇总一般需要使用连接与联合这两种手段将来自不同数据表的数据合并在一起。对于多表连接,我们需要特别注意它的笛卡尔乘积输出规则所导致的记录行数增大效应,否则汇总出来的数字很可能就会不正确!请注意笛卡尔乘积输出规则对于任何类型的表间连接方式的影响作用都是一样的,不论它是内连接、外连接、一对多或者多对多关系等等。
例如A表ID=1的记录有2行,B表ID=1的记录有3行,那么A、B两表基于字段ID连接后,ID=1的记录行数将输出2x3=6行,直接对连接后得到的记录集实施汇总显然就会不正确。
那么SQL多表汇总如何规避"笛卡尔"乘积输出规则的影响呢?一是先对单表实施汇总,然后才进行连接;又或者在确保至少一方表是唯一的情况下实施连接,因为1乘以任何数还是任何数,"笛卡尔"乘积输出规则不会令到连接后的记录集行数增多。
具体的多表汇总方法需要考虑的问题很多,当然不止上述因素,还是那句话需要具体问题具体分析。
在报表设计状态,添加一个文本框控件,设置该文本框属性的控制项数据来源,
如果要统计某个字段的合计:=dsum("字段名","表名","条件")
如果要统计报表记录条数:=dcount("字段名","表名","条件")
其中"表名"为报表数据关联的表或者查询的名字。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)