zoukankan      html  css  js  c++  java
  • sqlserver 脚本方式导出数据到excel

      1 use EntDataCenter
      2 go
      3 SET ANSI_NULLS ON
      4 GO
      5 SET QUOTED_IDENTIFIER ON
      6 GO
      7 -- =============================================
      8 -- Author:        <Author,,Name>
      9 -- Create date: <Create Date,,>
     10 -- Description:    <Description,,>
     11 -- =============================================
     12 --exec dbo.ent_all_DataToExcel
     13 create PROCEDURE  ent_all_DataToExcel
     14 
     15 AS
     16 BEGIN
     17     -- SET NOCOUNT ON added to prevent extra result sets from
     18     -- interfering with SELECT statements.
     19     SET NOCOUNT off;
     20     DECLARE @str2name varchar(8000);--二级国代分类名称
     21     DECLARE @str2code varchar(8000);--二级国代分类代码
     22     DECLARE @str1name varchar(8000);--一级国代分类名称
     23     DECLARE @str varchar(8000);
     24     DECLARE @str1 varchar(8000);
     25     DECLARE @server varchar(100);--服务器
     26     DECLARE @uname varchar(100);--用户名
     27     DECLARE @pwd varchar(100);--密码
     28     
     29     DECLARE @IsExist bit;
     30     select @str2name='';
     31     select @str2code='';
     32     select @str1name='';
     33     select @str='';
     34     select @str1='';
     35     set @server='192.168.1.7';
     36     set @uname='dev_db';
     37     set @pwd='dev_db';
     38     set @IsExist=0;
     39     
     40     ---判断文件夹是否存在,若不存在则创建文件夹----
     41     begin
     42         CREATE TABLE #tmp ([File Exists] BIT, [File is a Directory] BIT, [Parent Directory Exists] BIT)
     43         INSERT INTO #tmp ([File Exists], [File is a Directory], [Parent Directory Exists])
     44         EXEC master.dbo.xp_fileexist 'c:project';
     45         SELECT @IsExist=[File is a Directory] FROM #tmp;
     46         if(@IsExist=0)
     47         begin
     48           ExEc xp_cmdshell 'mkdir c:project';
     49         end
     50         drop table #tmp
     51     end
     52     
     53     DECLARE contact_cursor CURSOR FOR (SELECT   a.国代分类名称 as 二级国代分类名称,a.国代分类代码 as 二级国代分类代码,b.国代分类名称 as 一级国代分类名称
     54                                         FROM [EntDataCenter].[dbo].[doc_class_nation_code]  a
     55                                         inner join   [EntDataCenter].[dbo].[doc_class_nation_code]   b
     56                                         on a.PCode=b.国代分类代码  where a.Level=1)
     57     OPEN contact_cursor
     58             FETCH NEXT FROM contact_cursor
     59             INTO @str2name,@str2code,@str1name
     60             WHILE @@FETCH_STATUS = 0
     61             BEGIN        
     62                          begin
     63                         set @str='select   a.[企业名称],a.[所在省份],a.[所在城市],' ;
     64                         set @str=@str+'(case b.year when 2005  then b.[total_assets] else 0 end) as [2005资产],';
     65                         set @str=@str+'(case b.year when 2006  then b.[total_assets] else 0 end) as [2006资产],';
     66                         set @str=@str+'(case b.year when 2007  then b.[total_assets] else 0 end) as [2007资产],';
     67                         set @str=@str+'(case b.year when 2008  then b.[total_assets] else 0 end) as [2008资产],';
     68                         set @str=@str+'(case b.year when 2009  then b.[total_assets] else 0 end) as [2009资产],';
     69                         set @str=@str+'(case b.year when 2010  then b.[total_assets] else 0 end) as [2010资产],';
     70                         set @str=@str+'(case b.year when 2011  then b.[total_assets] else 0 end) as [2011资产],';
     71                         set @str=@str+'(case b.year when 2012  then b.[total_assets] else 0 end) as [2012资产],';
     72                         set @str=@str+'(case b.year when 2005  then b.total_current_assets else 0 end) as [2005流动资产],';
     73                         set @str=@str+'(case b.year when 2006  then b.total_current_assets else 0 end) as [2006流动资产],';
     74                         set @str=@str+'(case b.year when 2007  then b.total_current_assets else 0 end) as [2007流动资产],';
     75                         set @str=@str+'(case b.year when 2008  then b.total_current_assets else 0 end) as [2008流动资产],';
     76                         set @str=@str+'(case b.year when 2009  then b.total_current_assets else 0 end) as [2009流动资产],';
     77                         set @str=@str+'(case b.year when 2010  then b.total_current_assets else 0 end) as [2010流动资产],';
     78                         set @str=@str+'(case b.year when 2011  then b.total_current_assets else 0 end) as [2011流动资产],';
     79                         set @str=@str+'(case b.year when 2012  then b.total_current_assets else 0 end) as [2012流动资产],';
     80                         set @str=@str+'(case b.year when 2005  then b.total_liabilities else 0 end) as [2005负债],';
     81                         set @str=@str+'(case b.year when 2006  then b.total_liabilities else 0 end) as [2006负债],';
     82                         set @str=@str+'(case b.year when 2007  then b.total_liabilities else 0 end) as [2007负债],';
     83                         set @str=@str+'(case b.year when 2008  then b.total_liabilities else 0 end) as [2008负债],';
     84                         set @str=@str+'(case b.year when 2009  then b.total_liabilities else 0 end) as [2009负债],';
     85                         set @str=@str+'(case b.year when 2010  then b.total_liabilities else 0 end) as [2010负债],';
     86                         set @str=@str+'(case b.year when 2011  then b.total_liabilities else 0 end) as [2011负债],';
     87                         set @str=@str+'(case b.year when 2012  then b.total_liabilities else 0 end) as [2012负债],';
     88                         set @str=@str+'(case b.year when 2005  then b.operating_income else 0 end) as [2005收入],';
     89                         set @str=@str+'(case b.year when 2006  then b.operating_income else 0 end) as [2006收入],';
     90                         set @str=@str+'(case b.year when 2007  then b.operating_income else 0 end) as [2007收入],';
     91                         set @str=@str+'(case b.year when 2008  then b.operating_income else 0 end) as [2008收入],';
     92                         set @str=@str+'(case b.year when 2009  then b.operating_income else 0 end) as [2009收入],';
     93                         set @str=@str+'(case b.year when 2010  then b.operating_income else 0 end) as [2010收入],';
     94                         set @str=@str+'(case b.year when 2011  then b.operating_income else 0 end) as [2011收入],';
     95                         set @str=@str+'(case b.year when 2012  then b.operating_income else 0 end) as [2012收入],';
     96                         set @str=@str+'(case b.year when 2005  then b.operating_costs else 0 end) as [2005成本],';
     97                         set @str=@str+'(case b.year when 2006  then b.operating_costs else 0 end) as [2006成本],';
     98                         set @str=@str+'(case b.year when 2007  then b.operating_costs else 0 end) as [2007成本],';
     99                         set @str=@str+'(case b.year when 2008  then b.operating_costs else 0 end) as [2008成本],';
    100                         set @str=@str+'(case b.year when 2009  then b.operating_costs else 0 end) as [2009成本],';
    101                         set @str=@str+'(case b.year when 2010  then b.operating_costs else 0 end) as [2010成本],';
    102                         set @str=@str+'(case b.year when 2011  then b.operating_costs else 0 end) as [2011成本],';
    103                         set @str=@str+'(case b.year when 2012  then b.operating_costs else 0 end) as [2012成本],';
    104                         set @str=@str+'(case b.year when 2005  then b.total_profit else 0 end) as [2005利润总额],';
    105                         set @str=@str+'(case b.year when 2006  then b.total_profit else 0 end) as [2006利润总额],';
    106                         set @str=@str+'(case b.year when 2007  then b.total_profit else 0 end) as [2007利润总额],';
    107                         set @str=@str+'(case b.year when 2008  then b.total_profit else 0 end) as [2008利润总额],';
    108                         set @str=@str+'(case b.year when 2009  then b.total_profit else 0 end) as [2009利润总额],';
    109                         set @str=@str+'(case b.year when 2010  then b.total_profit else 0 end) as [2010利润总额],';
    110                         set @str=@str+'(case b.year when 2011  then b.total_profit else 0 end) as [2011利润总额],';
    111                         set @str=@str+'(case b.year when 2012  then b.total_profit else 0 end) as [2012利润总额]';
    112                         set @str=@str+'from [dbo].[ent_all] a ';
    113                         set @str=@str+'left join [dbo].[Ent_All_Finance] b on a.ent_id = b.ent_id  where a.国代分类代码 like '''+@str2code+'%''';
    114                         
    115                         --set  @str='select * from [EntDataCenter].[dbo].[doc_class_nation_code] where Level=1';
    116                         set @str1='bcp "'+@str+'" queryout C:project'+@str1name+'-'+@str2name+'.xls -c -S'+@server+' -U'+@uname+' -P'+@pwd+'';
    117                         end 
    118                         --print @str1;
    119                         EXEC master..xp_cmdshell @str1
    120                        
    121                        
    122               FETCH NEXT FROM contact_cursor
    123               INTO @str2name,@str2code,@str1name
    124             END
    125             CLOSE contact_cursor
    126     DEALLOCATE contact_cursor
    127  
    128 END
    129 GO
  • 相关阅读:
    SimpleRetryTemplateSupplier
    Atcoder Grand Contest 013 E Placing Squares(组合意义转化+矩阵快速幂/代数推导,思维题)
    Atcoder Grand Contest 033 D Complexity(dp)
    Vue案例之计数器
    Redis数据类型之List列表类型
    Redis数据类型之Hash哈希类型
    Vue之vfor列表展示
    Vue初体验
    RedisDesktopManager本地连接云服务器上的Redis
    Redis数据类型之ZSet有序集合类型
  • 原文地址:https://www.cnblogs.com/iwenwen/p/4018946.html
Copyright © 2011-2022 走看看