最近作东西碰到个问题:
例如表A中原有的内容为年份(year),以及每个月的销售数据,分别用(amt1,amt2等等表示),我在查询的时候需要查询例如年份为2007到2010的销售数据,我需要在一个数据窗口显示,效果大概如下:项目  2007年一月   2007年二月  ....2008年一月 2008年二月 ....2010年一月...
小麦  1000         2000            3000       2000           1500表结构 billid(fk) int,year int,amt1 decimal(10,2),.....,amt12 decimal(10,2),itemno int(pk),itemname varchar(32)主要是对同一个表的数据读取成需要显示的样子有点模糊,我的实现方法比较笨,选出数据然后插入对应项目的那行记录,但是这样速度太慢了我想问下数据库存储过程或者函数有没有动态建立表的方法?例如上面我查询2007年1月到2008年5月,就建立一个表返回2007年1月到2007年12月 加上 2008年1月到2008年5月的内容。可能问题不够明确,望各位大侠指点下:)

解决方案 »

  1.   

    想你这种,我不知道你的跨度有多大,你把所有数据都放在一行即一个记录里,你知道不知道SQL对记录的长度是有限制的?
      

  2.   

    每个基础数据表的列数 1,024 1,024 
    每个SELECT 语句的列数 4,096 4,096 
    每个INSERT 语句的列数 1,024 1,024 
    这样至少可以存85年的数据到一行数据中,我在程序中很容易限制查询年度跨度最长,50年就很长了。