CREATE  procedure  Rep_jxcqsdb 
@year int,
@return_Fcs1 int output,
@return_Fcs2 int output,
@return_Fcs3 int output,
@return_Fcs4 int output,
@return_Fcs5 int output,
@return_Fcs6 int output,
@return_Fcs7 int output,
@return_Fcs8 int output,
@return_Fcs9 int output,
@return_Fcs10 int output,
@return_Fcs11 int output,
@return_Fcs12 int output,
@return_Xslc1 int output,
@return_Xslc2 int output,
@return_Xslc3 int output,
@return_Xslc4 int output,
@return_Xslc5 int output,
@return_Xslc6 int output,
@return_Xslc7 int output,
@return_Xslc8 int output,
@return_Xslc9 int output,
@return_Xslc10 int output,
@return_Xslc11 int output,
@return_Xslc12 int outputas
/*---------------------  平均行程趋势对比 ----------------*/
begin
SELECT @return_Fcs1=COUNT(OrderID), @return_Xslc1=SUM(行驶里程) FROM L_LNG_Truck_Costing where  核算年份=@year and 核算月份='1'
GROUP BY  核算年份, 核算月份SELECT @return_Fcs2=COUNT(OrderID),@return_Xslc2=SUM(行驶里程) FROM L_LNG_Truck_Costing where  核算年份=@year and 核算月份='2'
GROUP BY  核算年份, 核算月份SELECT @return_Fcs3=COUNT(OrderID), @return_Xslc3=SUM(行驶里程) FROM L_LNG_Truck_Costing where  核算年份=@year and 核算月份='3'
GROUP BY  核算年份, 核算月份SELECT @return_Fcs4=COUNT(OrderID), @return_Xslc4=SUM(行驶里程) FROM L_LNG_Truck_Costing where  核算年份=@year and 核算月份='4'
GROUP BY  核算年份, 核算月份SELECT @return_Fcs5=COUNT(OrderID),@return_Xslc5=SUM(行驶里程) FROM L_LNG_Truck_Costing where  核算年份=@year and 核算月份='5'
GROUP BY  核算年份, 核算月份SELECT @return_Fcs6=COUNT(OrderID), @return_Xslc6=SUM(行驶里程) FROM L_LNG_Truck_Costing where  核算年份=@year and 核算月份='6'
GROUP BY  核算年份, 核算月份SELECT @return_Fcs7=COUNT(OrderID), @return_Xslc7=SUM(行驶里程) FROM L_LNG_Truck_Costing where  核算年份=@year and 核算月份='7'
GROUP BY  核算年份, 核算月份SELECT @return_Fcs8=COUNT(OrderID),@return_Xslc8=SUM(行驶里程) FROM L_LNG_Truck_Costing where  核算年份=@year and 核算月份='8'
GROUP BY  核算年份, 核算月份SELECT @return_Fcs9=COUNT(OrderID), @return_Xslc9=SUM(行驶里程) FROM L_LNG_Truck_Costing where  核算年份=@year and 核算月份='9'
GROUP BY  核算年份, 核算月份SELECT @return_Fcs10=COUNT(OrderID), @return_Xslc10=SUM(行驶里程) FROM L_LNG_Truck_Costing where  核算年份=@year and 核算月份='10'
GROUP BY  核算年份, 核算月份SELECT @return_Fcs11=COUNT(OrderID),@return_Xslc11=SUM(行驶里程) FROM L_LNG_Truck_Costing where  核算年份=@year and 核算月份='11'
GROUP BY  核算年份, 核算月份SELECT @return_Fcs12=COUNT(OrderID), @return_Xslc12=SUM(行驶里程) FROM L_LNG_Truck_Costing where  核算年份=@year and 核算月份='12'
GROUP BY  核算年份, 核算月份
 if @return_Fcs1 is null
      set @return_Fcs1=0
 if @return_Fcs2 is null
      set @return_Fcs2=0
 if @return_Fcs3 is null
      set @return_Fcs3=0
 if @return_Fcs4 is null
      set @return_Fcs4=0
 if @return_Fcs5 is null
      set @return_Fcs5=0
 if @return_Fcs6 is null
      set @return_Fcs6=0
 if @return_Fcs7 is null
      set @return_Fcs7=0
 if @return_Fcs8 is null
      set @return_Fcs8=0
 if @return_Fcs9 is null
      set @return_Fcs9=0
 if @return_Fcs10 is null
      set @return_Fcs10=0
 if @return_Fcs11 is null
      set @return_Fcs11=0
 if @return_Fcs12 is null
      set @return_Fcs12=0
 if @return_Xslc1 is null
      set @return_Xslc1=0
 if @return_Xslc2 is null
      set @return_Xslc2=0
 if @return_Xslc3 is null
      set @return_Xslc3=0
if @return_Fcs4 is null
      set @return_Xslc4=0
 if @return_Xslc5 is null
      set @return_Xslc5=0
 if @return_Xslc6 is null
      set @return_Xslc6=0
 if @return_Xslc7 is null
      set @return_Xslc7=0
 if @return_Xslc8 is null
      set @return_Xslc8=0
 if @return_Xslc9 is null
      set @return_Xslc9=0
 if @return_Xslc10 is null
      set @return_Xslc10=0
 if @return_Xslc11 is null
      set @return_Xslc11=0
 if @return_Xslc12 is null
      set @return_Xslc12=0end;
GO

解决方案 »

  1.   

    CREATE  procedure  Rep_jxcqsdb 
    @year int
    as
    begin
    SELECT 核算年份,核算月份,@return_Fcs8=COUNT(OrderID),@return_Xslc8=isnull(SUM(行驶里程),0) FROM L_LNG_Truck_Costing where  核算年份=@year and 核算月份='8'
    GROUP BY  核算年份, 核算月份
    order by  核算月份
    end
      

  2.   

    不能用循环动态sql或许可以完成