db2视图的疑问

咨询大家一个问题,我现在有4个表(每年一个),现在想实现如下功能,不知道是否能实现。

建一个视图,合并4个表,查询某个时间的数据(可能是1年前),自动查询1年前所在的表,而不是几个表都查询一遍。有这样的视图吗?

视图能实现这个功能吗?像表分区一样。

参与20

4同行回答

欧阳峰欧阳峰其它Freelancer
第一种方式:1. 可以建立试图,难点在于自动查询1年前所在的表(也就是说自动查询按照一定条件的查询)2.那么既然是自动这样的要求,何不在建立试图的时候把时间条件加上呢?3.但是如果条件不是一个,那么有可能需要建立多个这样的条件的试图。第二种方式:就是把4个基表做成按年的分区...显示全部

第一种方式:

1. 可以建立试图,难点在于自动查询1年前所在的表(也就是说自动查询按照一定条件的查询)

2.那么既然是自动这样的要求,何不在建立试图的时候把时间条件加上呢?

3.但是如果条件不是一个,那么有可能需要建立多个这样的条件的试图。

第二种方式:

就是把4个基表做成按年的分区表,然后在建立试图,这样就一劳永逸了

收起
IT其它 · 2015-12-14
浏览1620
  • 是带有条件的。 例如视图名叫V_CUST. SELECT * FROM V_CUST WHERE OPER_DATE='2013-02-02';这个查询只查询CUST_2013这个表,不会去查询CUST_2014表。
    2015-12-14
新数科技新数科技IT顾问北京新数科技有限公司
给你推荐一个官方的文档,描述你这种情况的union all视图:http://www.ibm.com/developerworks/data/library/techarticle/dm-0202zuzarte/显示全部

给你推荐一个官方的文档,描述你这种情况的union all视图:

http://www.ibm.com/developerworks/data/library/techarticle/dm-0202zuzarte/

收起
IT咨询服务 · 2015-12-20
浏览1321
欧阳峰欧阳峰其它Freelancer
如果你的基表是分区表了,在分区表上建立了试图,那么就会按照你查询只查询CUST_2013这个表,不会去查询CUST_2014显示全部

如果你的基表是分区表了,在分区表上建立了试图,那么就会按照你查询只查询CUST_2013这个表,不会去查询CUST_2014

收起
IT其它 · 2015-12-14
浏览1378
  • 我的CUST_2013、CUST_2014、CUST_2015、CUSTS_2012就是V_CUST视图的基表,利用UNION ALL聚合起来的视图。这四个表是分区表,但都是按照机构号分区的。难道我查询条件中写的那个‘2013-02-02’查询V_CUST,只会查询CUST_2013吗?
    2015-12-14
seniordbaseniordba系统分析师stt1
如楼上所说,采用分区视图(union all)显示全部

如楼上所说,采用分区视图(union all)

收起
政府机关 · 2015-12-26
浏览1229

提问者

wangzk0206
数据库管理员scrcu

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2015-12-14
  • 关注会员:4 人
  • 问题浏览:3710
  • 最近回答:2015-12-26
  • X社区推广