行转列后 显示问题

milizi820 2009-01-14 02:09:48
怎么把下面这段执行的结果显示出来.(保存到一个临时表)

declare @sql varchar(8000)
set @sql = 'select PackageCode '
select @sql = @sql + ' , max(case YMD when ''' + YMD + ''' then SU else 0 end) [' + YMD + ']'
from (select distinct YMD from dbo.PCKG_ZU_TU) as a
set @sql = @sql + ' from dbo.PCKG_ZU_TU group by PackageCode'
exec(@sql)
...全文
98 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
WWWWA 2009-01-14
  • 打赏
  • 举报
回复
呵呵,如问题已解决,请点管理结贴
milizi820 2009-01-14
  • 打赏
  • 举报
回复



我知道了,,加一条
drop table dbo.tt

我真笨^^

谢谢啊
WWWWA 2009-01-14
  • 打赏
  • 举报
回复
drop table tt
milizi820 2009-01-14
  • 打赏
  • 举报
回复
执行完后 将结果写入了表 tt

但是还有一个问题是,我这个结果是动态变化的,是按日期推移的,每天都会增加一列.


我再次执行存储过程时

消息 2714,级别 16,状态 6,第 1 行
数据库中已存在名为 'tt' 的对象。
WWWWA 2009-01-14
  • 打赏
  • 举报
回复
declare @sql varchar(8000)
set @sql = 'select PackageCode '
select @sql = @sql + ' , max(case YMD when ''' + YMD + ''' then SU else 0 end) [' + YMD + ']'
from (select distinct YMD from dbo.PCKG_ZU_TU) as a
set @sql = @sql + ' into tt from dbo.PCKG_ZU_TU group by PackageCode'
exec(@sql)
milizi820 2009-01-14
  • 打赏
  • 举报
回复
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go




ALTER PROCEDURE [dbo].[PCKG_ZU]
AS
BEGIN
--------------------
declare @sql varchar(8000)
set @sql = 'select PackageCode '
select @sql = @sql + ' , max(case YMD when ''' + YMD + ''' then SU else 0 end) [' + YMD + ']'
from (select distinct YMD from dbo.PCKG_ZU_TU) as a
set @sql = @sql + ' from dbo.PCKG_ZU_TU group by PackageCode'
exec(@sql)
set @sql = @sql + ' into tt from dbo.PCKG_ZU_TU group by PackageCode'




END

select * from tt


消息 208,级别 16,状态 1,第 1 行
对象名 'tt' 无效。


WWWWA 2009-01-14
  • 打赏
  • 举报
回复
生成物理表不行?将#去掉
milizi820 2009-01-14
  • 打赏
  • 举报
回复
不行啊..我要把它的结果放在视图里(或表里),再通过宏 读到EXCEL的表里
WWWWA 2009-01-14
  • 打赏
  • 举报
回复

set @sql = @sql + ' into #tt from dbo.PCKG_ZU_TU group by PackageCode'

6,108

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 数据库报表
社区管理员
  • 数据库报表社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧