本人要SQL语句动态创建3个视图,然后再由3个视图合并为一个,作为统计查询的结果。
现在的问题是视图的创建,举例:A视图由2个表(表tb1与表tb2)联合查询而成,表tb1为基本资料表,固定的,字段包括ITEM_CODE (代号),DES (名称)
ITEM_CODE    DES
#001         塑胶1
#002         塑胶2
#003         塑胶3
。。表tb2则不固定是哪一个表,至于是那个表根据月份决定,要动态连接表。比如4月时是:ITEM004表,5月时是:ITEM005表类推
ITEM004表,ITEM005表,ITEM006表 的结构是不变的,只是数据不同。字段有ITEM_CODE,LOCATION(仓位),ChuNumber(数量)结构如下:
  
ITEM_CODE   LOCATION   ChuNumber    
----------- ----------- ----------- 
#001           csp         400         
#002           csp         300         假如要查找4月的数据,则这样创建视图,结果如上图:SELECT ITEM004.ITEM_CODE, ITEM004.LOCATION, ITEM004.ChuNumber 
FROM tb1 INNER JOIN ITEM004 ON tb1.ITEM_CODE = ITEM004.ITEM_CODE页面上有一Dropdownlist控件,里面写明了4-12月,当用户选择不同的月份时,显示不同的数据,
怎么写SQL语句呢,请指教?
说明:我想直接用SQL语句不想要存储过程,因为我是直接绑定的,只需要创建4-12月的数据,能实现么?

解决方案 »

  1.   

    说明:我想直接用SQL语句不想要存储过程,因为我是直接绑定的,只需要创建4-12月的数据,能实现么?
    这是过程或函数了吧,视图貌似 不支持这样如果非要这样,可以利用存储过程EXEC ('CREATE VIEW ......')没过感觉没必要
      

  2.   

    说明:我想直接用SQL语句不想要存储过程,因为我是直接绑定的,只需要创建4-12月的数据,能实现么?--你想怎么整就怎么整
      

  3.   

    UP如果只是SQL语句,那就不复杂了
      

  4.   

    --过程参考:create proc p_test
      @month int 
    as 
    if isnull(@month,0)=0 return
    declare @m varchar(2)
    set @m=right(100+@month,2)
    exec(
    'SELECT ITEM0'+@m+'.ITEM_CODE, ITEM0'+@m+'.LOCATION, ITEM0'+@m+'.ChuNumber 
    FROM tb1 INNER JOIN ITEM0'+@m+' ON tb1.ITEM_CODE = ITEM0'+@m+'.ITEM_CODE
    ')
    GO
    --显示4月份的数据:
    exec p_test 4