请高手帮忙,我做一个查询,数据库是sql server,但是不用存储过程来实现。
要用程序来实现,请注意我要的是思路,用那种程序语言没有关系。
表是动态生成的 ,如table0411表示2004年11月生成的表,table0412表示2004年12月生成的表,table0501表示2005年1生成的表。查询两个输入日期date_begin和date_end之间的数据,而这两个日期之间,可能跨越两个相临的月份,可能跨越同一年内的多个月份,可能跨越两年甚至是好几年。怎样写sql语句呢,请各位提供思路,谢谢

解决方案 »

  1.   

    查sysobjects表中table开头的表名,然后用循环将时间段内的各个表Union起来,其他的跟单表查询一样.
      

  2.   

    增加一个表 表中字段为(表名,生成日期)
    判断生成日期是不是在date_begin和date_end之间
    从相应表中取数据就ok了
      

  3.   

    如果一个月一张表,只能用UNION连接每个月的表,关键是如何推算跨过几个月
    用两个变量year,month来记数并反映到表名中就可以实现
      

  4.   

    以上说的都太麻烦,建议你每次建立一个临时表,
    然后把这些表都导入临时表中。
    直接写SQL语句(这样虽然有点麻烦实际上时最简单的方法,如果数据量不但,还是很好的)