我现在遇到一个问题,请教下大家应该怎么解决。我通过查询一个表,得出一个视图。但现在这样的表有很多个,我的想法是怎么样自动的查询这些表,得到同一个视图。表的名字是有规律的,比如T1_1,T1_2,T1_3,T1_4,T1_5,T1_6,T1_7,且所有表的结构和列名是一样的。创建视图时运行以下的sql语句:SELECTDISTINCT局向,COUNT(局向)AS局向数量,sum(总费用)AS总费用FROMT1_1GROUPBY局向现在需要说明的是:每个表都很大,上百万级的级别,我想过把所有表加到一个表中再运行上述语句,但效率不太高上述的sql会生成一个视图,我的目的是所有这些表的结果都在同一个视图中这些表中可能会有重复项
2 回答
慕雪6442864
TA贡献1812条经验 获得超5个赞
表的个数是固定的吧,可以参考下面的语句selectDISTINCT局向,COUNT(局向)AS局向数量,sum(总费用)AS总费用from(SELECTDISTINCT局向,COUNT(局向)AS局向数量,sum(总费用)AS总费用FROMT1_1GROUPBY局向unionSELECTDISTINCT局向,COUNT(局向)AS局向数量,sum(总费用)AS总费用FROMT1_2GROUPBY局向unionSELECTDISTINCT局向,COUNT(局向)AS局向数量,sum(总费用)AS总费用FROMT1_3GROUPBY局向)
胡子哥哥
TA贡献1825条经验 获得超6个赞
你既然都考虑到了脚本,就应该从脚本下手,写一个存储过程来实现。在PL/SQL里面是可以使用DynamicSQL来实现你这个需求。通过循环来遍历表名,依次来拼接创建视图的sql(可以参照楼上的union方式),DynamicSQL执行不知道DB2有没有此类机制,只是一个建议
添加回答
举报
0/150
提交
取消