存储过程 循环创建字段

来源:百度知道 编辑:UC知道 时间:2024/07/02 16:28:54
请问在 存储过程中 怎样根据传入的参数@i 动态创建字段:比如@i=5时,就创建5个字段,@i=10时,就创建10个字段
谢谢啦,请各位大侠帮帮小弟吧!
我的本意是这样的:
有两张表 t_staffer(销售员),t_product(销售产品)
在t_staffer中有字段[staID,staName(销售人员名称)]
在t_product中有字段[proID,proName(产品名称),staID(销售人员ID),SaleDate(销售日期)]
现要统计出产品的销售情况:
比如:销售员(张三)从一月到十一月之间每个月的销售情况,
结果显示为:
staName 一月,二月,三月…………十一月
张三 有 无 有 有
李四 无 无 有 无
请问 该如何进行统计呢?

非常感谢各位,小弟真是受益匪浅!可惜分不能给多个人
,没得到分的各位大侠就算行善了吧。莫怪小弟啊!O(∩_∩)O

WHITE_WIN 老大的语句是对的.

但是生成的表却是create table tablenamne(fieldn int,field3 int,field2 int ...field1 int)
这种形式..如果你不在意这点..那就OK啦.
如果硬要create table tablenamne(field1 int,field2 int,field3 int ...fieldn int) 这种.

就用这个试试
create procedure createtable
@i int,
@tablename varchar(10)
as
declare @str varchar(1000)
declare @j int
set @j=1
set @str='create table '+@tablename+'('
while @j<=@i
begin
set @str=@str+'field'+cast(@j as varchar)+' int,'
set @j=@j+1
end
set @str=left(@str,len(@str)-1) +')'
exec(@str)
--形成一个这样的语句并建表:
--create table tablenamne(field1 int,field2 int,field3 int ...fieldn int)
go

呵呵..借花献佛

----------------------------------------------------
一月 二月 三月 这些可不可以用1,2,3 或者1月,2月,3月替换
-----------------------------------------------------------------

create proc