« DataReport的结果集合并 »
Tools » http://www.anysql.net/tools/webchart-data-unionall.html 2009-07-08上一次发现了DataReport的数据共享需求, 现在又发现了新的需求, 假设要提供一个交易的查询页面, 因为几个月以前的数据已经迁移到历史库了, 只有最新的留在了生产库, 最普通的做法是显示成两个表格,
WEBCHART.DBNAME_1=PROD
WEBCHART.QUERY_1=SELECT * FROM TRADE_CURRENT …
WEBCHART.DBNAME_2=HISTORY
WEBCHART.QUERY_2=SELECT * FROM TRADE_HISTORY …
更好的做法是将两个查询结果合并, 显示成一个表格, 不让用户看两个表格, 现在DataReport可以做到这一点了, 只要指定某一个查询的显示类型为减号即可以.
WEBCHART.TYPE_1=-
WEBCHART.DBNAME_1=PROD
WEBCHART.QUERY_1=SELECT * FROM TRADE_CURRENT …
WEBCHART.DBNAME_2=HISTORY
WEBCHART.QUERY_2=SELECT * FROM TRADE_HISTORY …
这样定义后, 在第二个查询的输出中就会包含两个查询的结果(UNION ALL), 通过使用排序属性(ORDER_n)来对合并后的记录进行排序后显示. 需要注意的是交叉表功能及表达式功能, 会在合并前执行, 不能在合并后执行, 可以理解成WHERE (交叉表), GROUP BY(表达式)及HAVING(结果集合并)的顺序执行关系.


Recent Comments