首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求注释,该怎么处理

2013-01-25 
求注释求高手注释下面句子,比较长,分数也会全给!因刚进,分数不多,望各牛人帮忙还有中间的if 想用循环换掉,

求注释
求高手注释下面句子,比较长,分数也会全给!因刚进,分数不多,望各牛人帮忙
还有中间的if 想用循环换掉,可尝试失败
USE [Financial-ODS-bk]
GO

/****** Object: StoredProcedure [dbo].[CrossTab] Script Date: 09/19/2012 16:29:33 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

-- CREATE procedure [dbo].[CrossTab] 
CREATE procedure [dbo].[CrossTab] 
(
@select varchar(2000),
@PivotCol varchar(100), 
@Summaries varchar(100), 
@GroupBy varchar(100),
@OtherCols varchar(100),
@OrderByCols varchar(100)
)

-- @OrderByCols varchar(100) = Null
AS
set nocount on
set ansi_warnings off 
declare @sql varchar(1000)

Select @sql = ''

Select @OtherCols= isNull(', ' + @OtherCols,'')

create table #pivot_columns (pivot_column_name varchar(100))

Select @sql='select ''' + replace( + @PivotCol,',',''' as pivot_column_name union all select ''')+''''

insert into #pivot_columns
exec(@sql)

select @sql=''

create table #pivot_columns_data (pivot_column_name varchar(100),pivot_column_data varchar(100))

Select @PivotCol=''

Select @PivotCol=min(pivot_column_name) from #pivot_columns

While @PivotCol>''
Begin
  insert into #pivot_columns_data(pivot_column_name,pivot_column_data) 
  exec 
  (
  'select distinct ''' + @PivotCol +''' as pivot_column_name, convert(varchar(100),' + @PivotCol + ') as pivot_column_data from 
  ('+
  @select
  +'
  ) T'
  )
   
  

  Select @PivotCol=min(pivot_column_name) from #pivot_columns where pivot_column_name>@PivotCol
end 

if (select count(1) from #pivot_columns_data where pivot_column_data = '20120101') = 0 
  insert into #pivot_columns_data(pivot_column_name,pivot_column_data) values ('fromDateString', '20120101')

if (select count(1) from #pivot_columns_data where pivot_column_data = '20120201') = 0 
  insert into #pivot_columns_data(pivot_column_name,pivot_column_data) values ('fromDateString', '20120201') 

if (select count(1) from #pivot_columns_data where pivot_column_data = '20120301') = 0 
  insert into #pivot_columns_data(pivot_column_name,pivot_column_data) values ('fromDateString', '20120301') 

if (select count(1) from #pivot_columns_data where pivot_column_data = '20120401') = 0 
  insert into #pivot_columns_data(pivot_column_name,pivot_column_data) values ('fromDateString', '20120401') 

if (select count(1) from #pivot_columns_data where pivot_column_data = '20120501') = 0 
  insert into #pivot_columns_data(pivot_column_name,pivot_column_data) values ('fromDateString', '20120501') 

if (select count(1) from #pivot_columns_data where pivot_column_data = '20120601') = 0 
  insert into #pivot_columns_data(pivot_column_name,pivot_column_data) values ('fromDateString', '20120601') 

if (select count(1) from #pivot_columns_data where pivot_column_data = '20120701') = 0 
  insert into #pivot_columns_data(pivot_column_name,pivot_column_data) values ('fromDateString', '20120701') 

if (select count(1) from #pivot_columns_data where pivot_column_data = '20120801') = 0 
  insert into #pivot_columns_data(pivot_column_name,pivot_column_data) values ('fromDateString', '20120801') 

if (select count(1) from #pivot_columns_data where pivot_column_data = '20120901') = 0 
  insert into #pivot_columns_data(pivot_column_name,pivot_column_data) values ('fromDateString', '20120901') 

if (select count(1) from #pivot_columns_data where pivot_column_data = '20121001') = 0 
  insert into #pivot_columns_data(pivot_column_name,pivot_column_data) values ('fromDateString', '20121001') 



if (select count(1) from #pivot_columns_data where pivot_column_data = '20121101') = 0 
  insert into #pivot_columns_data(pivot_column_name,pivot_column_data) values ('fromDateString', '20121101') 
  
if (select count(1) from #pivot_columns_data where pivot_column_data = '20121201') = 0 
  insert into #pivot_columns_data(pivot_column_name,pivot_column_data) values ('fromDateString', '20121201') 

  
select 
  @sql = @sql + ', ' + 
  replace(
  replace(
  @Summaries,'(','(CASE WHEN ' + Pivot_Column_name + '=''' + 
  pivot_column_data + ''' THEN ' 
  ),
  ')[', ' END) as [' + pivot_column_data 
  )
from #pivot_columns_data
order by pivot_column_name

declare @sqlGroupBy varchar(3000)

set @sqlGroupBy = 'select ' + @GroupBy +@OtherCols +@sql + 
  ' from (
  '+
  @select 
  +'
  ) T
  GROUP BY ' + @GroupBy 
   
if @OrderByCols <> ''
  set @sqlGroupBy = @sqlGroupBy + ' order by ' + @OrderByCols  

if @OrderByCols <> ''  
exec 
(
  'select ' + @GroupBy +@OtherCols +@sql + 
  ' from (
  '+
  @select 
  +'
  ) T
  GROUP BY ' + @GroupBy + ' order by ' + @OrderByCols  

else
exec 
(
  'select ' + @GroupBy +@OtherCols +@sql + 
  ' from (
  '+
  @select 
  +'
  ) T
  GROUP BY ' + @GroupBy 


-- + ' order by ' + @OrderByCols
   
drop table #pivot_columns
drop table #pivot_columns_data

set nocount off
set ansi_warnings on




GO


[解决办法]
头都晕了,问写的人把,那段if可以用case when来替换,循环干嘛呢?
[解决办法]
你看那段代码还能调试,还能看到每一步的结果,我们看头晕眼花的。你自己每一行注释一下不就可以咯。

热点排行
Bad Request.