日期:2014-05-17  浏览次数:20448 次

SQL不固定列,并在右边增加合计一列,统计前面的订单量
工厂 类型 12年04月上旬 12年04月中旬 12年04月下旬 12年05月上旬 12年05月中旬 12年05月下旬 。。。 合计 
工厂1 针车 600 300 400 300 500 200 2300 
工厂2 成型 100 200 300 400 500 600 2100
。。。
。。。


如何在最后增加“合计”一列,并统计从12年04月上旬到,最后一列的订单量总数,其中列不固定。


open cur_mon
fetch next from cur_mon into @mon
while(@@fetch_status = 0)
begin
set @columnS = @columnS + ',patindex((''' + @mon + '''),separatemonth)*sum(a.qtp) as '''+@mon+''' '
fetch next from cur_mon into @mon
end
close cur_mon
deallocate cur_mon

这段代码是生成不固定列的,也就是上面的上中下旬

求高手帮忙解答,谢谢



------解决方案--------------------
给你个提示吧:
select t.*
from SYS.columns t
inner join sys.tables on sys.tables.object_id = t.object_id
where sys.tables.name = 'your tablename'

不过这个是不合格的表格设计,会带来越来越多的麻烦。
------解决方案--------------------
建议把所有的月份全部创建字段,然后所有字段加起来。。这样效率会搞很多
------解决方案--------------------
这个是可以实现的 ; 写成动态SQL吧,硬拼就可以了呀!
------解决方案--------------------
直接列列相加不就ok了。。。。。