国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

教你快速掌握一個交叉表的通用存儲過程

2024-07-21 02:42:45
字體:
來源:轉載
供稿:網友
交叉表的通用存儲過程:

CREATE   PRoc   p_qry     @TableName   sysname,   --表名     @縱軸   sysname,     --交叉表最左面的列     @橫軸   sysname,     --交叉表最上面的列     @表體內容   sysname,   --交叉表的數數據字段     @是否加橫向合計   bit,--為1時在交叉表橫向最右邊加橫向合計     @是否家縱向合計   bit,   --為1時在交叉表縱向最下邊加縱向合計     @where    varchar(400) --查詢where條件  as     declare   @s   nvarchar(4000),@sql   varchar(8000)         --判斷橫向字段是否大于縱向字段數目,如果是,則交換縱橫字段     set   @s='declare   @a   sysname     if(select   case   when   count(distinct   ['+@縱軸+'])<count(distinct   ['+@橫軸+'])   then   1   else   0   end     from   ['+@TableName+'])=1       select   @a=@縱軸,@縱軸=@橫軸,@橫軸=@a'     exec   sp_executesql   @s       ,N'@縱軸   sysname   out,@橫軸   sysname   out'       ,@縱軸   out,@橫軸   out         --生成交叉表處理語句     set   @s='     set   @s=''''     select   @s=@s+'',[''+cast(['+@橫軸+']   as   varchar)+'']=sum(case   ['+@橫軸       +']   when   ''''''+cast(['+@橫軸+']   as   varchar)+''''''   then   ['+@表體內容+']   else   0   end)''     from   ['+@TableName+']     group   by   ['+@橫軸+']'     exec   sp_executesql   @s       ,N'@s   varchar(8000)   out'       ,@sql   out         --是否生成合計字段的處理     declare   @sum1   varchar(200),@sum2   varchar(200),@sum3   varchar(200)     select   @sum1=case   @是否加橫向合計           when   1   then   ',[合計]=sum(['+@表體內容+'])'         else   ''   end       ,@sum2=case   @是否家縱向合計           when   1   then   '['+@縱軸+']=case   grouping(['           +@縱軸+'])   when   1   then   ''合計''   else   cast(['           +@縱軸+']   as   varchar)   end'         else   '['+@縱軸+']'   end       ,@sum3=case   @是否家縱向合計         when   1   then   '   with   rollup'         else   ''   end         --生成交叉表     exec('select   '+@sum2+@sql+@sum1+'     from   ['+@TableName+']  where ' + @where  + '      group   by   ['+@縱軸+']'+@sum3)GO

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 龙门县| 白银市| 固安县| 奎屯市| 裕民县| 个旧市| 长泰县| 鹿泉市| 罗江县| 东辽县| 毕节市| 河曲县| 珠海市| 朝阳市| 广宁县| 社会| 砀山县| 达拉特旗| 西畴县| 新竹市| 依安县| 寻乌县| 宝丰县| 大关县| 宁波市| 盱眙县| 蓬莱市| 台前县| 吉安市| 黑龙江省| 胶州市| 长兴县| 镇沅| 房产| 莱州市| 武山县| 阳原县| 葫芦岛市| 平顶山市| 焦作市| 迭部县|