sql循环出来的查询语句是否能union all 起来
ALTER PROCEDURE [dbo].[proc_SelectEntprCardMagCount] @Year VARCHAR(50) AS BEGIN declare @i int set @i=1 WHILE @i <=12 BEGIN SELECT ''+CONVERT(VARCHAR(23),@i,23)+'月' 时间,dbo.Fun_TotalEntprCardMag('建设单位',@Year,@i) '建设单位',dbo.Fun_TotalEntprCardMag('施工单位',@Year,@i) '施工单位' ,dbo.Fun_TotalEntprCardMag('监理单位',@Year,@i) '监理单位',dbo.Fun_TotalEntprCardMag('安拆单位',@Year,@i) '安拆单位' SET @i=@i+1 END END EXEC dbo.proc_SelectEntprCardMagCount '2015' -- varchar(50)
查询出来的结果
现在想实现如下结果:
请问下,sql循环中是否可以?
你都已经WHILE了,还问能不能循环?
你需要临时表,请古鸽 SQL SERVER 临时表。
临时表是可以,但是我有个@year的参数怎么传递进去?
@最初的、天空:
你可以在存储过程或者FUNCTION中创建一个临时表
然后把你那些数据insert into 临时表,
然后再
Select * from 临时表
@最初的、天空: 我刚刚写好了语句,你就关闭问题了。
SELECT CAST(number AS varchar(2))+'月' 时间 ,
dbo.Fun_TotalEntprCardMag('建设单位', @Year, @i) '建设单位' ,
dbo.Fun_TotalEntprCardMag('施工单位', @Year, @i) '施工单位' ,
dbo.Fun_TotalEntprCardMag('监理单位', @Year, @i) '监理单位' ,
dbo.Fun_TotalEntprCardMag('安拆单位', @Year, @i) '安拆单位'
FROM master..spt_values
WHERE type = 'P'
AND number BETWEEN 1 AND 12
@醉心: 后面的@i改成number
@醉心: 已经搞定了。 谢谢你了
查出来的结果 插入临时表,在返回?
借鉴SQL SERVER 临时表。
alter proc p @year nvarchar(64) as create table #Temp ( Name nvarchar(64) ) 将你的数据循环插入到临时表。 drop table #temp