[置顶] [易飞]主营业务分析图

上图

[置顶] [易飞]主营业务分析图_第1张图片

SQL:

/****** Object:  StoredProcedure [dbo].[UP_MainBusinessChart]    Script Date: 04/19/2012 10:45:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--============================================================
--用途:主营业务分析图表
--作者:龚德辉
--日期:2012-04-10
--============================================================

ALTER PROCEDURE [dbo].[UP_MainBusinessChart]

AS
BEGIN

--今年与去年年份
declare
@year as nchar(4),
@lastyear as nchar(4),
@cyear as nchar(4),
@cmonth as nchar(3),
@csaletype as nvarchar(10),
@cmount as decimal(10,2),
@ccost as decimal(10,2)
set @year=datepart(year,getdate()) 
set @lastyear=datepart(year,dateadd(year,-1,getdate()))  

select A.cyear,A.cmonth,A.csaletype,sum(camount) camount,sum(ccost) ccost into #temp01 from( 
SELECT   datepart(year,TA003) cyear,datepart(month,TA003) as cmonth,
CASE WHEN TA001 in ('6101','6102','6103','6104','6105','6106')  then '内销' 
     --WHEN TA001 in ('6201','6202','6203','6204','6205','6206')  then '外销'
else '外销' END AS csaletype,
TB019 camount, TA001,
convert(decimal(15,2),TB022*LA012) ccost,
TB022 qty
FROM  ACRTB LEFT JOIN ACRTA ON TA001=TB001 AND TA002=TB002
            LEFT JOIN COPMA ON TA004=MA001
            LEFT JOIN INVMB ON TB039=MB001
	        INNER JOIN INVLA ON LA006=TB005 AND LA007=TB006 AND LA008=TB007
        	    
WHERE left(TA003,4) in (@year,@lastyear)  AND TB004 in ('1','2')  and TA025='Y'
) A
group by  A.cyear,A.cmonth,A.csaletype
order by  A.cyear,A.cmonth,A.csaletype asc

select a.* into #temp02  
from(
/*sales  revenue*/
select 'Sales Revenue'+convert(nvarchar(4),cyear) as item,
SUM(CASE WHEN cmonth = '1' THEN camount ELSE 0 END) AS Jan,
SUM(CASE WHEN cmonth = '2' THEN camount ELSE 0 END) AS Feb,
SUM(CASE WHEN cmonth = '3' THEN camount ELSE 0 END) AS Mar,
SUM(CASE WHEN cmonth = '4' THEN camount ELSE 0 END) AS Apr,
SUM(CASE WHEN cmonth = '5' THEN camount ELSE 0 END) AS May,
SUM(CASE WHEN cmonth = '6' THEN camount ELSE 0 END) AS Jun,
SUM(CASE WHEN cmonth = '7' THEN camount ELSE 0 END) AS Jul,
SUM(CASE WHEN cmonth = '8' THEN camount ELSE 0 END) AS Aug,
SUM(CASE WHEN cmonth = '9' THEN camount ELSE 0 END) AS Sep,
SUM(CASE WHEN cmonth = '10' THEN camount ELSE 0 END) AS Oct,
SUM(CASE WHEN cmonth = '11' THEN camount ELSE 0 END) AS Nov,
SUM(CASE WHEN cmonth = '12' THEN camount ELSE 0 END) AS [Dec]
from #temp01
where cyear=@year
group by cyear
union all
/*cost of sales*/
select 'Cost of Sales'+convert(nvarchar(4),cyear) as item,
SUM(CASE WHEN cmonth = '1' THEN ccost ELSE 0 END) AS Jan,
SUM(CASE WHEN cmonth = '2' THEN ccost ELSE 0 END) AS Feb,
SUM(CASE WHEN cmonth = '3' THEN ccost ELSE 0 END) AS Mar,
SUM(CASE WHEN cmonth = '4' THEN ccost ELSE 0 END) AS Apr,
SUM(CASE WHEN cmonth = '5' THEN ccost ELSE 0 END) AS May,
SUM(CASE WHEN cmonth = '6' THEN ccost ELSE 0 END) AS Jun,
SUM(CASE WHEN cmonth = '7' THEN ccost ELSE 0 END) AS Jul,
SUM(CASE WHEN cmonth = '8' THEN ccost ELSE 0 END) AS Aug,
SUM(CASE WHEN cmonth = '9' THEN ccost ELSE 0 END) AS Sep,
SUM(CASE WHEN cmonth = '10' THEN ccost ELSE 0 END) AS Oct,
SUM(CASE WHEN cmonth = '11' THEN ccost ELSE 0 END) AS Nov,
SUM(CASE WHEN cmonth = '12' THEN ccost ELSE 0 END) AS [Dec]
from #temp01
where cyear=@year
group by cyear
union all
/*毛利润*/
select 'Gross Profit'+convert(nvarchar(4),cyear) as item,
SUM(CASE WHEN cmonth = '1' THEN camount-ccost ELSE 0 END) AS Jan,
SUM(CASE WHEN cmonth = '2' THEN camount-ccost ELSE 0 END) AS Feb,
SUM(CASE WHEN cmonth = '3' THEN camount-ccost ELSE 0 END) AS Mar,
SUM(CASE WHEN cmonth = '4' THEN camount-ccost ELSE 0 END) AS Apr,
SUM(CASE WHEN cmonth = '5' THEN camount-ccost ELSE 0 END) AS May,
SUM(CASE WHEN cmonth = '6' THEN camount-ccost ELSE 0 END) AS Jun,
SUM(CASE WHEN cmonth = '7' THEN camount-ccost ELSE 0 END) AS Jul,
SUM(CASE WHEN cmonth = '8' THEN camount-ccost ELSE 0 END) AS Aug,
SUM(CASE WHEN cmonth = '9' THEN camount-ccost ELSE 0 END) AS Sep,
SUM(CASE WHEN cmonth = '10' THEN camount-ccost ELSE 0 END) AS Oct,
SUM(CASE WHEN cmonth = '11' THEN camount-ccost ELSE 0 END) AS Nov,
SUM(CASE WHEN cmonth = '12' THEN camount-ccost ELSE 0 END) AS [Dec]
from #temp01
where cyear=@year
group by cyear

union all

/*今年的本年利润:会计科目各期汇总档ACTLE 4103本年利润科目 */
SELECT 
'Profit'+convert(nvarchar(4),LE002) as item,
SUM(CASE WHEN LE003 ='01' THEN LE017 ELSE 0 END) AS Jan,
SUM(CASE WHEN LE003 = '02' THEN LE017 ELSE 0 END) AS Feb,
SUM(CASE WHEN LE003 = '03' THEN LE017 ELSE 0 END) AS Mar,
SUM(CASE WHEN LE003 = '04' THEN LE017 ELSE 0 END) AS Apr,
SUM(CASE WHEN LE003 = '05' THEN LE017 ELSE 0 END) AS May,
SUM(CASE WHEN LE003 = '06' THEN LE017 ELSE 0 END) AS Jun,
SUM(CASE WHEN LE003 = '07' THEN LE017 ELSE 0 END) AS Jul,
SUM(CASE WHEN LE003 = '08' THEN LE017 ELSE 0 END) AS Aug,
SUM(CASE WHEN LE003 = '09' THEN LE017 ELSE 0 END) AS Sep,
SUM(CASE WHEN LE003 = '10' THEN LE017 ELSE 0 END) AS Oct,
SUM(CASE WHEN LE003 = '11' THEN LE017 ELSE 0 END) AS Nov,
SUM(CASE WHEN LE003 = '12' THEN LE017 ELSE 0 END) AS [Dec]
from ACTLE
where LE002=@year AND LE001='4103'
group by LE002
union all
/* 毛利润率*/
select 'Profit Margin'+convert(nvarchar(4),cyear) as item,
case when SUM(CASE WHEN cmonth = '1' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '1' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '1' THEN camount ELSE 0 END)*100 else 0 END AS Jan,
 case when SUM(CASE WHEN cmonth = '2' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '2' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '2' THEN camount ELSE 0 END)*100  ELSE 0 END AS Feb,
 case when SUM(CASE WHEN cmonth = '3' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '3' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '3' THEN camount ELSE 0 END)*100  ELSE 0 END AS Mar,
case when SUM(CASE WHEN cmonth = '4' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '4' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '4' THEN camount ELSE 0 END)*100  ELSE 0 END AS Apr,
case when SUM(CASE WHEN cmonth = '5' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '5' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '5' THEN camount ELSE 0 END)*100  ELSE 0 END AS May,
case when SUM(CASE WHEN cmonth = '16' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '6' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '6' THEN camount ELSE 0 END)*100  ELSE 0 END AS Jun,
case when SUM(CASE WHEN cmonth = '7' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '7' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '7' THEN camount ELSE 0 END)*100  ELSE 0 END AS Jul,
case when SUM(CASE WHEN cmonth = '8' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '8' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '8' THEN camount ELSE 0 END)*100  ELSE 0 END AS Aug,
case when SUM(CASE WHEN cmonth = '9' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '9' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '9' THEN camount ELSE 0 END)*100  ELSE 0 END AS Sep,
case when SUM(CASE WHEN cmonth = '10' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '10' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '10' THEN camount ELSE 0 END)*100  ELSE 0 END AS Oct,
case when SUM(CASE WHEN cmonth = '11' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '11' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '11' THEN camount ELSE 0 END)*100  ELSE 0 END AS Nov,
case when SUM(CASE WHEN cmonth = '12' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '12' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '12' THEN camount ELSE 0 END)*100  ELSE 0 END AS [Dec]
from #temp01
where cyear=@year
group by cyear

union all

/*去年数据*/
select 'Sales Revenue'+convert(nvarchar(4),cyear) as item,
SUM(CASE WHEN cmonth = '1' THEN camount ELSE 0 END) AS Jan,
SUM(CASE WHEN cmonth = '2' THEN camount ELSE 0 END) AS Feb,
SUM(CASE WHEN cmonth = '3' THEN camount ELSE 0 END) AS Mar,
SUM(CASE WHEN cmonth = '4' THEN camount ELSE 0 END) AS Apr,
SUM(CASE WHEN cmonth = '5' THEN camount ELSE 0 END) AS May,
SUM(CASE WHEN cmonth = '6' THEN camount ELSE 0 END) AS Jun,
SUM(CASE WHEN cmonth = '7' THEN camount ELSE 0 END) AS Jul,
SUM(CASE WHEN cmonth = '8' THEN camount ELSE 0 END) AS Aug,
SUM(CASE WHEN cmonth = '9' THEN camount ELSE 0 END) AS Sep,
SUM(CASE WHEN cmonth = '10' THEN camount ELSE 0 END) AS Oct,
SUM(CASE WHEN cmonth = '11' THEN camount ELSE 0 END) AS Nov,
SUM(CASE WHEN cmonth = '12' THEN camount ELSE 0 END) AS [Dec]
from #temp01
where cyear=@lastyear
group by cyear
union all
/*cost of sales*/
select 'Cost of Sales'+convert(nvarchar(4),cyear) as item,
SUM(CASE WHEN cmonth = '1' THEN ccost ELSE 0 END) AS Jan,
SUM(CASE WHEN cmonth = '2' THEN ccost ELSE 0 END) AS Feb,
SUM(CASE WHEN cmonth = '3' THEN ccost ELSE 0 END) AS Mar,
SUM(CASE WHEN cmonth = '4' THEN ccost ELSE 0 END) AS Apr,
SUM(CASE WHEN cmonth = '5' THEN ccost ELSE 0 END) AS May,
SUM(CASE WHEN cmonth = '6' THEN ccost ELSE 0 END) AS Jun,
SUM(CASE WHEN cmonth = '7' THEN ccost ELSE 0 END) AS Jul,
SUM(CASE WHEN cmonth = '8' THEN ccost ELSE 0 END) AS Aug,
SUM(CASE WHEN cmonth = '9' THEN ccost ELSE 0 END) AS Sep,
SUM(CASE WHEN cmonth = '10' THEN ccost ELSE 0 END) AS Oct,
SUM(CASE WHEN cmonth = '11' THEN ccost ELSE 0 END) AS Nov,
SUM(CASE WHEN cmonth = '12' THEN ccost ELSE 0 END) AS [Dec]
from #temp01
where cyear=@lastyear
group by cyear
union all
/*毛利润*/
select 'Gross Profit'+convert(nvarchar(4),cyear) as item,
SUM(CASE WHEN cmonth = '1' THEN camount-ccost ELSE 0 END) AS Jan,
SUM(CASE WHEN cmonth = '2' THEN camount-ccost ELSE 0 END) AS Feb,
SUM(CASE WHEN cmonth = '3' THEN camount-ccost ELSE 0 END) AS Mar,
SUM(CASE WHEN cmonth = '4' THEN camount-ccost ELSE 0 END) AS Apr,
SUM(CASE WHEN cmonth = '5' THEN camount-ccost ELSE 0 END) AS May,
SUM(CASE WHEN cmonth = '6' THEN camount-ccost ELSE 0 END) AS Jun,
SUM(CASE WHEN cmonth = '7' THEN camount-ccost ELSE 0 END) AS Jul,
SUM(CASE WHEN cmonth = '8' THEN camount-ccost ELSE 0 END) AS Aug,
SUM(CASE WHEN cmonth = '9' THEN camount-ccost ELSE 0 END) AS Sep,
SUM(CASE WHEN cmonth = '10' THEN camount-ccost ELSE 0 END) AS Oct,
SUM(CASE WHEN cmonth = '11' THEN camount-ccost ELSE 0 END) AS Nov,
SUM(CASE WHEN cmonth = '12' THEN camount-ccost ELSE 0 END) AS [Dec]
from #temp01
where cyear=@lastyear
group by cyear

union all

/*本年利润:会计科目各期汇总档ACTLE 4103本年利润科目 */
SELECT 
'Profit'+convert(nvarchar(4),LE002) as item,
SUM(CASE WHEN LE003 ='01' THEN LE017 ELSE 0 END) AS Jan,
SUM(CASE WHEN LE003 = '02' THEN LE017 ELSE 0 END) AS Feb,
SUM(CASE WHEN LE003 = '03' THEN LE017 ELSE 0 END) AS Mar,
SUM(CASE WHEN LE003 = '04' THEN LE017 ELSE 0 END) AS Apr,
SUM(CASE WHEN LE003 = '05' THEN LE017 ELSE 0 END) AS May,
SUM(CASE WHEN LE003 = '06' THEN LE017 ELSE 0 END) AS Jun,
SUM(CASE WHEN LE003 = '07' THEN LE017 ELSE 0 END) AS Jul,
SUM(CASE WHEN LE003 = '08' THEN LE017 ELSE 0 END) AS Aug,
SUM(CASE WHEN LE003 = '09' THEN LE017 ELSE 0 END) AS Sep,
SUM(CASE WHEN LE003 = '10' THEN LE017 ELSE 0 END) AS Oct,
SUM(CASE WHEN LE003 = '11' THEN LE017 ELSE 0 END) AS Nov,
SUM(CASE WHEN LE003 = '12' THEN LE017 ELSE 0 END) AS [Dec]
from ACTLE
where LE002=@lastyear AND LE001='4103'
group by LE002
union all
/* 毛利润率*/
select 'Profit Margin'+convert(nvarchar(4),cyear) as item,
case when SUM(CASE WHEN cmonth = '1' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '1' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '1' THEN camount ELSE 0 END)*100 else 0 END AS Jan,
 case when SUM(CASE WHEN cmonth = '2' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '2' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '2' THEN camount ELSE 0 END)*100  ELSE 0 END AS Feb,
 case when SUM(CASE WHEN cmonth = '3' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '3' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '3' THEN camount ELSE 0 END)*100  ELSE 0 END AS Mar,
case when SUM(CASE WHEN cmonth = '4' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '4' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '4' THEN camount ELSE 0 END)*100  ELSE 0 END AS Apr,
case when SUM(CASE WHEN cmonth = '5' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '5' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '5' THEN camount ELSE 0 END)*100  ELSE 0 END AS May,
case when SUM(CASE WHEN cmonth = '6' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '6' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '6' THEN camount ELSE 0 END)*100  ELSE 0 END AS Jun,
case when SUM(CASE WHEN cmonth = '7' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '7' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '7' THEN camount ELSE 0 END)*100  ELSE 0 END AS Jul,
case when SUM(CASE WHEN cmonth = '8' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '8' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '8' THEN camount ELSE 0 END)*100  ELSE 0 END AS Aug,
case when SUM(CASE WHEN cmonth = '9' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '9' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '9' THEN camount ELSE 0 END)*100  ELSE 0 END AS Sep,
case when SUM(CASE WHEN cmonth = '10' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '10' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '10' THEN camount ELSE 0 END)*100  ELSE 0 END AS Oct,
case when SUM(CASE WHEN cmonth = '11' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '11' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '11' THEN camount ELSE 0 END)*100  ELSE 0 END AS Nov,
case when SUM(CASE WHEN cmonth = '12' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '12' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '12' THEN camount ELSE 0 END)*100  ELSE 0 END AS [Dec]
from #temp01
where cyear=@lastyear
group by cyear
) a


/*年度对比分析*/
select * from #temp02
/*收入柱状图*/
select * from #temp02
where item like '%Sales Revenue%' or item like '%Profit Margin%'


select * from #temp02
where item in('Sales Revenue'+convert(nvarchar(4),@year),'Sales Revenue'+convert(nvarchar(4),@lastyear)) or
      item in('Cost of Sales'+convert(nvarchar(4),@year),'Cost of Sales'+convert(nvarchar(4),@lastyear)) or
      item in('Gross Profit'+convert(nvarchar(4),@year),'Gross Profit'+convert(nvarchar(4),@lastyear)) or
      item in('Profit'+convert(nvarchar(4),@year),'Profit'+convert(nvarchar(4),@lastyear)) 
order by item asc       



---------------------------去年内外销结构----------------------------
select * into #temp03 
from(
select 'sales revenue' as item,
SUM(camount)  AS 'lastyear'
from #temp01
where cyear=@lastyear 
union all
select 'sales Domestic' as item,
SUM(camount)  AS 'lastyear'
from #temp01
where cyear=@lastyear and csaletype='内销'
union all
select 'cost Domestic' as item,
SUM(ccost)  AS 'lastyear'
from #temp01
where cyear=@lastyear and csaletype='内销'
union all
select 'profit Domestic' as item,
SUM(camount-ccost)  AS 'lastyear'
from #temp01
where cyear=@lastyear and csaletype='内销'
union all
select 'sales Export' as item,
SUM(camount)  AS 'lastyear'
from #temp01
where cyear=@lastyear and csaletype='外销'
union all
select 'cost Export' as item,
SUM(ccost)  AS 'lastyear'
from #temp01
where cyear=@lastyear and csaletype='外销'
union all
select 'profit Export' as item,
SUM(camount-ccost)  AS 'lastyear'
from #temp01
where cyear=@lastyear and csaletype='外销'
union all
select 'profit margin Domestic' as item,
SUM(camount-ccost)/SUM(camount)*100 AS 'lastyear'  
from #temp01
where cyear=@lastyear and csaletype='内销'
union all
select 'profit margin Export' as item,
SUM(camount-ccost)/SUM(camount)*100 AS 'lastyear'  
from #temp01
where cyear=@lastyear and csaletype='外销'


)c

----------------------今年分月内外销结构------------------------------
select * into #temp04 
from(
/*内销收入*/
select 'sales revenue' as item,
SUM(CASE WHEN cmonth = '1' THEN camount ELSE 0 END) AS Jan,
SUM(CASE WHEN cmonth = '2' THEN camount ELSE 0 END) AS Feb,
SUM(CASE WHEN cmonth = '3' THEN camount ELSE 0 END) AS Mar,
SUM(CASE WHEN cmonth = '4' THEN camount ELSE 0 END) AS Apr,
SUM(CASE WHEN cmonth = '5' THEN camount ELSE 0 END) AS May,
SUM(CASE WHEN cmonth = '6' THEN camount ELSE 0 END) AS Jun,
SUM(CASE WHEN cmonth = '7' THEN camount ELSE 0 END) AS Jul,
SUM(CASE WHEN cmonth = '8' THEN camount ELSE 0 END) AS Aug,
SUM(CASE WHEN cmonth = '9' THEN camount ELSE 0 END) AS Sep,
SUM(CASE WHEN cmonth = '10' THEN camount ELSE 0 END) AS Oct,
SUM(CASE WHEN cmonth = '11' THEN camount ELSE 0 END) AS Nov,
SUM(CASE WHEN cmonth = '12' THEN camount ELSE 0 END) AS [Dec],
case when SUM(camount)<>0 then 
SUM(camount)  ELSE 0 END AS [total]
from #temp01
where cyear=@year 
union all
/*内销收入*/
select 'sales Domestic' as item,
SUM(CASE WHEN cmonth = '1' THEN camount ELSE 0 END) AS Jan,
SUM(CASE WHEN cmonth = '2' THEN camount ELSE 0 END) AS Feb,
SUM(CASE WHEN cmonth = '3' THEN camount ELSE 0 END) AS Mar,
SUM(CASE WHEN cmonth = '4' THEN camount ELSE 0 END) AS Apr,
SUM(CASE WHEN cmonth = '5' THEN camount ELSE 0 END) AS May,
SUM(CASE WHEN cmonth = '6' THEN camount ELSE 0 END) AS Jun,
SUM(CASE WHEN cmonth = '7' THEN camount ELSE 0 END) AS Jul,
SUM(CASE WHEN cmonth = '8' THEN camount ELSE 0 END) AS Aug,
SUM(CASE WHEN cmonth = '9' THEN camount ELSE 0 END) AS Sep,
SUM(CASE WHEN cmonth = '10' THEN camount ELSE 0 END) AS Oct,
SUM(CASE WHEN cmonth = '11' THEN camount ELSE 0 END) AS Nov,
SUM(CASE WHEN cmonth = '12' THEN camount ELSE 0 END) AS [Dec],
case when SUM(camount)<>0 then 
SUM(camount)  ELSE 0 END AS [total]
from #temp01
where cyear=@year and csaletype='内销'
union all
/*内销成本*/
select  'cost Domestic' as item,
SUM(CASE WHEN cmonth = '1' THEN ccost ELSE 0 END) AS Jan,
SUM(CASE WHEN cmonth = '2' THEN ccost ELSE 0 END) AS Feb,
SUM(CASE WHEN cmonth = '3' THEN ccost ELSE 0 END) AS Mar,
SUM(CASE WHEN cmonth = '4' THEN ccost ELSE 0 END) AS Apr,
SUM(CASE WHEN cmonth = '5' THEN ccost ELSE 0 END) AS May,
SUM(CASE WHEN cmonth = '6' THEN ccost ELSE 0 END) AS Jun,
SUM(CASE WHEN cmonth = '7' THEN ccost ELSE 0 END) AS Jul,
SUM(CASE WHEN cmonth = '8' THEN ccost ELSE 0 END) AS Aug,
SUM(CASE WHEN cmonth = '9' THEN ccost ELSE 0 END) AS Sep,
SUM(CASE WHEN cmonth = '10' THEN ccost ELSE 0 END) AS Oct,
SUM(CASE WHEN cmonth = '11' THEN ccost ELSE 0 END) AS Nov,
SUM(CASE WHEN cmonth = '12' THEN ccost ELSE 0 END) AS [Dec],
case when SUM(ccost)<>0 then 
SUM(ccost)  ELSE 0 END AS [total]
from #temp01
where cyear=@year and csaletype='内销'
union all
/*内销毛利润*/
select 'profit Domestic' as item,
SUM(CASE WHEN cmonth = '1' THEN camount-ccost ELSE 0 END) AS Jan,
SUM(CASE WHEN cmonth = '2' THEN camount-ccost ELSE 0 END) AS Feb,
SUM(CASE WHEN cmonth = '3' THEN camount-ccost ELSE 0 END) AS Mar,
SUM(CASE WHEN cmonth = '4' THEN camount-ccost ELSE 0 END) AS Apr,
SUM(CASE WHEN cmonth = '5' THEN camount-ccost ELSE 0 END) AS May,
SUM(CASE WHEN cmonth = '6' THEN camount-ccost ELSE 0 END) AS Jun,
SUM(CASE WHEN cmonth = '7' THEN camount-ccost ELSE 0 END) AS Jul,
SUM(CASE WHEN cmonth = '8' THEN camount-ccost ELSE 0 END) AS Aug,
SUM(CASE WHEN cmonth = '9' THEN camount-ccost ELSE 0 END) AS Sep,
SUM(CASE WHEN cmonth = '10' THEN camount-ccost ELSE 0 END) AS Oct,
SUM(CASE WHEN cmonth = '11' THEN camount-ccost ELSE 0 END) AS Nov,
SUM(CASE WHEN cmonth = '12' THEN camount-ccost ELSE 0 END) AS [Dec],
case when SUM(camount-ccost)<>0 then 
SUM(camount-ccost)  ELSE 0 END AS [total]
from #temp01 
where cyear=@year and  csaletype='内销'
union all
/*外销收入*/
select 'sales Export' as item,
SUM(CASE WHEN cmonth = '1' THEN camount ELSE 0 END) AS Jan,
SUM(CASE WHEN cmonth = '2' THEN camount ELSE 0 END) AS Feb,
SUM(CASE WHEN cmonth = '3' THEN camount ELSE 0 END) AS Mar,
SUM(CASE WHEN cmonth = '4' THEN camount ELSE 0 END) AS Apr,
SUM(CASE WHEN cmonth = '5' THEN camount ELSE 0 END) AS May,
SUM(CASE WHEN cmonth = '6' THEN camount ELSE 0 END) AS Jun,
SUM(CASE WHEN cmonth = '7' THEN camount ELSE 0 END) AS Jul,
SUM(CASE WHEN cmonth = '8' THEN camount ELSE 0 END) AS Aug,
SUM(CASE WHEN cmonth = '9' THEN camount ELSE 0 END) AS Sep,
SUM(CASE WHEN cmonth = '10' THEN camount ELSE 0 END) AS Oct,
SUM(CASE WHEN cmonth = '11' THEN camount ELSE 0 END) AS Nov,
SUM(CASE WHEN cmonth = '12' THEN camount ELSE 0 END) AS [Dec],
case when SUM(camount)<>0 then 
SUM(camount) ELSE 0 END AS [total]
from #temp01
where cyear=@year and csaletype='外销'
union all
/*外销成本*/
select  'cost Export' as item,
SUM(CASE WHEN cmonth = '1' THEN ccost ELSE 0 END) AS Jan,
SUM(CASE WHEN cmonth = '2' THEN ccost ELSE 0 END) AS Feb,
SUM(CASE WHEN cmonth = '3' THEN ccost ELSE 0 END) AS Mar,
SUM(CASE WHEN cmonth = '4' THEN ccost ELSE 0 END) AS Apr,
SUM(CASE WHEN cmonth = '5' THEN ccost ELSE 0 END) AS May,
SUM(CASE WHEN cmonth = '6' THEN ccost ELSE 0 END) AS Jun,
SUM(CASE WHEN cmonth = '7' THEN ccost ELSE 0 END) AS Jul,
SUM(CASE WHEN cmonth = '8' THEN ccost ELSE 0 END) AS Aug,
SUM(CASE WHEN cmonth = '9' THEN ccost ELSE 0 END) AS Sep,
SUM(CASE WHEN cmonth = '10' THEN ccost ELSE 0 END) AS Oct,
SUM(CASE WHEN cmonth = '11' THEN ccost ELSE 0 END) AS Nov,
SUM(CASE WHEN cmonth = '12' THEN ccost ELSE 0 END) AS [Dec],
case when SUM(ccost)<>0 then 
SUM(ccost) ELSE 0 END AS [total]
from #temp01
where cyear=@year and csaletype='外销'
union all
/*外销毛利润*/
select 'profit Export' as item,
SUM(CASE WHEN cmonth = '1' THEN camount-ccost ELSE 0 END) AS Jan,
SUM(CASE WHEN cmonth = '2' THEN camount-ccost ELSE 0 END) AS Feb,
SUM(CASE WHEN cmonth = '3' THEN camount-ccost ELSE 0 END) AS Mar,
SUM(CASE WHEN cmonth = '4' THEN camount-ccost ELSE 0 END) AS Apr,
SUM(CASE WHEN cmonth = '5' THEN camount-ccost ELSE 0 END) AS May,
SUM(CASE WHEN cmonth = '6' THEN camount-ccost ELSE 0 END) AS Jun,
SUM(CASE WHEN cmonth = '7' THEN camount-ccost ELSE 0 END) AS Jul,
SUM(CASE WHEN cmonth = '8' THEN camount-ccost ELSE 0 END) AS Aug,
SUM(CASE WHEN cmonth = '9' THEN camount-ccost ELSE 0 END) AS Sep,
SUM(CASE WHEN cmonth = '10' THEN camount-ccost ELSE 0 END) AS Oct,
SUM(CASE WHEN cmonth = '11' THEN camount-ccost ELSE 0 END) AS Nov,
SUM(CASE WHEN cmonth = '12' THEN camount-ccost ELSE 0 END) AS [Dec],
case when SUM(camount-ccost)<>0 then 
SUM(camount-ccost)  ELSE 0 END AS [total]
from #temp01 
where cyear=@year and  csaletype='外销'
union all
/*内销毛利率*/
select 'profit margin Domestic' as item,
case when SUM(CASE WHEN cmonth = '1' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '1' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '1' THEN camount ELSE 0 END)*100 else 0 END AS Jan,
 case when SUM(CASE WHEN cmonth = '2' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '2' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '2' THEN camount ELSE 0 END)*100  ELSE 0 END AS Feb,
 case when SUM(CASE WHEN cmonth = '3' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '3' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '3' THEN camount ELSE 0 END)*100  ELSE 0 END AS Mar,
case when SUM(CASE WHEN cmonth = '4' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '4' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '4' THEN camount ELSE 0 END)*100  ELSE 0 END AS Apr,
case when SUM(CASE WHEN cmonth = '5' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '5' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '5' THEN camount ELSE 0 END)*100  ELSE 0 END AS May,
case when SUM(CASE WHEN cmonth = '6' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '6' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '6' THEN camount ELSE 0 END)*100  ELSE 0 END AS Jun,
case when SUM(CASE WHEN cmonth = '7' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '7' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '7' THEN camount ELSE 0 END)*100  ELSE 0 END AS Jul,
case when SUM(CASE WHEN cmonth = '8' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '8' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '8' THEN camount ELSE 0 END)*100  ELSE 0 END AS Aug,
case when SUM(CASE WHEN cmonth = '9' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '9' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '9' THEN camount ELSE 0 END)*100  ELSE 0 END AS Sep,
case when SUM(CASE WHEN cmonth = '10' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '10' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '10' THEN camount ELSE 0 END)*100  ELSE 0 END AS Oct,
case when SUM(CASE WHEN cmonth = '11' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '11' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '11' THEN camount ELSE 0 END)*100  ELSE 0 END AS Nov,
case when SUM(CASE WHEN cmonth = '12' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '12' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '12' THEN camount ELSE 0 END)*100  ELSE 0 END AS [Dec],
case when SUM(camount)<>0 then 
SUM(camount-ccost)/SUM(camount)*100  ELSE 0 END AS [total]
from #temp01
where cyear=@year and csaletype='内销'
union all
/*内销毛利率*/
select 'profit margin Export' as item,
case when SUM(CASE WHEN cmonth = '1' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '1' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '1' THEN camount ELSE 0 END)*100 else 0 END AS Jan,
 case when SUM(CASE WHEN cmonth = '2' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '2' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '2' THEN camount ELSE 0 END)*100  ELSE 0 END AS Feb,
 case when SUM(CASE WHEN cmonth = '3' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '3' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '3' THEN camount ELSE 0 END)*100  ELSE 0 END AS Mar,
case when SUM(CASE WHEN cmonth = '4' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '4' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '4' THEN camount ELSE 0 END)*100  ELSE 0 END AS Apr,
case when SUM(CASE WHEN cmonth = '5' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '5' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '5' THEN camount ELSE 0 END)*100  ELSE 0 END AS May,
case when SUM(CASE WHEN cmonth = '6' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '6' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '6' THEN camount ELSE 0 END)*100  ELSE 0 END AS Jun,
case when SUM(CASE WHEN cmonth = '7' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '7' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '7' THEN camount ELSE 0 END)*100  ELSE 0 END AS Jul,
case when SUM(CASE WHEN cmonth = '8' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '8' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '8' THEN camount ELSE 0 END)*100  ELSE 0 END AS Aug,
case when SUM(CASE WHEN cmonth = '9' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '9' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '9' THEN camount ELSE 0 END)*100  ELSE 0 END AS Sep,
case when SUM(CASE WHEN cmonth = '10' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '10' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '10' THEN camount ELSE 0 END)*100  ELSE 0 END AS Oct,
case when SUM(CASE WHEN cmonth = '11' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '11' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '11' THEN camount ELSE 0 END)*100  ELSE 0 END AS Nov,
case when SUM(CASE WHEN cmonth = '12' THEN camount ELSE 0 END)<>0 then 
SUM(CASE WHEN cmonth = '12' THEN camount-ccost ELSE 0 END)/SUM(CASE WHEN cmonth = '12' THEN camount ELSE 0 END)*100  ELSE 0 END AS [Dec],
case when SUM(camount)<>0 then 
SUM(camount-ccost)/SUM(camount)*100  ELSE 0 END AS [total]
from #temp01
where cyear=@year and csaletype='外销'

)d
/*内外销结构分析*/
select
e.item,
e.lastyear,
f.Jan,
f.Feb,
f.Mar,
f.Apr,
f.May,
f.Jun,
f.Jul,
f.Aug,
f.Sep,
f.Oct,
f.Nov,
f.[Dec],
f.[total]
from #temp03 as e left join #temp04 as f on e.item=f.item


/*净利润走势百分比*/
select xxx.item,xxx.lastyear,yyy.Jan,yyy.Feb,yyy.Mar,yyy.Apr,yyy.May,yyy.Jun,yyy.Jul,yyy.Aug,yyy.Sep,yyy.Oct,yyy.Nov,yyy.[Dec]
 from
(
SELECT x.item,convert(decimal(10,2),x.lastyear/y.lastyear)  as lastyear  from
(SELECT 
'Profit' as item,
 sum(LE017) as 'lastyear'
from ACTLE
where LE002=@lastyear AND LE001='4103' and LE003<>'00'
) x
inner join 
(select 'Profit' as item,
SUM(camount) as 'lastyear'
from #temp01
where cyear=@lastyear
) y on x.item=y.item
)xxx
inner join 
(
select xx.item,
case when yy.Jan<>0  then convert(decimal(10,2),xx.Jan/yy.Jan) else 0 end as Jan,
case when yy.Feb<>0  then convert(decimal(10,2),xx.Feb/yy.Feb) else 0 end as Feb,
case when yy.Mar<>0  then convert(decimal(10,2),xx.Mar/yy.Mar) else 0 end as Mar,
case when yy.Apr<>0  then convert(decimal(10,2),xx.Apr/yy.Apr) else 0 end as Apr,
case when yy.May<>0  then convert(decimal(10,2),xx.May/yy.May) else 0 end as May,
case when yy.Jun<>0  then convert(decimal(10,2),xx.Jun/yy.Jun) else 0 end as Jun,
case when yy.Jul<>0  then convert(decimal(10,2),xx.Jul/yy.Jul) else 0 end as Jul,
case when yy.Aug<>0  then convert(decimal(10,2),xx.Aug/yy.Aug) else 0 end as Aug,
case when yy.Sep<>0  then convert(decimal(10,2),xx.Sep/yy.Sep) else 0 end as Sep,
case when yy.Oct<>0  then convert(decimal(10,2),xx.Oct/yy.Oct) else 0 end as Oct,
case when yy.Nov<>0  then convert(decimal(10,2),xx.Nov/yy.Nov) else 0 end as Nov,
case when yy.[Dec]<>0  then convert(decimal(10,2),xx.[Dec]/yy.[Dec]) else 0 end as [Dec],
case when yy.total<>0  then convert(decimal(10,2),xx.total/yy.total) else 0 end as total
from 
(
/*本年利润:会计科目各期汇总档ACTLE 4103本年利润科目 */
SELECT 
'Profit' as item,
SUM(CASE WHEN LE003 ='01' THEN LE017 ELSE 0 END) AS Jan,
SUM(CASE WHEN LE003 = '02' THEN LE017 ELSE 0 END) AS Feb,
SUM(CASE WHEN LE003 = '03' THEN LE017 ELSE 0 END) AS Mar,
SUM(CASE WHEN LE003 = '04' THEN LE017 ELSE 0 END) AS Apr,
SUM(CASE WHEN LE003 = '05' THEN LE017 ELSE 0 END) AS May,
SUM(CASE WHEN LE003 = '06' THEN LE017 ELSE 0 END) AS Jun,
SUM(CASE WHEN LE003 = '07' THEN LE017 ELSE 0 END) AS Jul,
SUM(CASE WHEN LE003 = '08' THEN LE017 ELSE 0 END) AS Aug,
SUM(CASE WHEN LE003 = '09' THEN LE017 ELSE 0 END) AS Sep,
SUM(CASE WHEN LE003 = '10' THEN LE017 ELSE 0 END) AS Oct,
SUM(CASE WHEN LE003 = '11' THEN LE017 ELSE 0 END) AS Nov,
SUM(CASE WHEN LE003 = '12' THEN LE017 ELSE 0 END) AS [Dec],
sum(LE017) as total
from ACTLE
where LE002=@year AND LE001='4103' 
)xx
inner join 
(
select 'Profit' as item,
SUM(CASE WHEN cmonth = '1' THEN camount ELSE 0 END) AS Jan,
SUM(CASE WHEN cmonth = '2' THEN camount ELSE 0 END) AS Feb,
SUM(CASE WHEN cmonth = '3' THEN camount ELSE 0 END) AS Mar,
SUM(CASE WHEN cmonth = '4' THEN camount ELSE 0 END) AS Apr,
SUM(CASE WHEN cmonth = '5' THEN camount ELSE 0 END) AS May,
SUM(CASE WHEN cmonth = '6' THEN camount ELSE 0 END) AS Jun,
SUM(CASE WHEN cmonth = '7' THEN camount ELSE 0 END) AS Jul,
SUM(CASE WHEN cmonth = '8' THEN camount ELSE 0 END) AS Aug,
SUM(CASE WHEN cmonth = '9' THEN camount ELSE 0 END) AS Sep,
SUM(CASE WHEN cmonth = '10' THEN camount ELSE 0 END) AS Oct,
SUM(CASE WHEN cmonth = '11' THEN camount ELSE 0 END) AS Nov,
SUM(CASE WHEN cmonth = '12' THEN camount ELSE 0 END) AS [Dec],
sum(camount) as total
from #temp01
where cyear=@year
)yy on xx.item=yy.item
)yyy on xxx.item=yyy.item

/*毛利率走势百分比*/
--去年总毛利率
/* 毛利润率*/

select mm.item,mm.lastyear,nn.Jan,nn.Feb,nn.Mar,nn.Apr,nn.May,nn.Jun,nn.Jul,nn.Aug,nn.Sep,nn.Oct,nn.Nov,nn.[Dec]
from(
select 'Profit' as item,
convert(decimal(10,2),SUM(camount-ccost)/SUM(camount))*100 AS lastyear
from #temp01
where cyear=@lastyear
)mm
inner join (
--今年分期毛利率
select 'Profit' item,Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,[Dec] from #temp02
where item='Profit Margin'+@year
)nn on mm.item=nn.item

drop table #temp01
drop table #temp02
drop table #temp03
drop table #temp04
/*获取收入 应收 应付 库存*/
SELECT * FROM UF_SAAI
/*Sales revenue&Account receivable*/
SELECT * FROM UF_SAAI
where item like '%Sales revenue%' or item like '%Account receivable%'
/*Sales revenue&Account payable*/
SELECT * FROM UF_SAAI
where item like '%Sales revenue%' or item like '%Account payable%'
/*Sales revenue&Inventories*/
SELECT * FROM UF_SAAI
where item like '%Sales revenue%' or item like '%Inventories%'
End

中间表:

CREATE TABLE [dbo].[UF_SAAI](
	[item] [nchar](30) NULL,
	[Jan] [decimal](18, 2) NULL,
	[Feb] [decimal](18, 2) NULL,
	[Mar] [decimal](18, 2) NULL,
	[Apr] [decimal](18, 2) NULL,
	[May] [decimal](18, 2) NULL,
	[Jun] [decimal](18, 2) NULL,
	[Jul] [decimal](18, 2) NULL,
	[Aug] [decimal](18, 2) NULL,
	[Sep] [decimal](18, 2) NULL,
	[Oct] [decimal](18, 2) NULL,
	[Nov] [decimal](18, 2) NULL,
	[Dec] [decimal](18, 2) NULL
) ON [PRIMARY]

每月月结后运行:

GO
/****** Object:  StoredProcedure [dbo].[UP_PullDateForUF_SAAI]    Script Date: 04/19/2012 10:50:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--============================================================
--用途:年度收入、应收账款、应付账款、库存账款 填充数据
--作者:龚德辉
--日期:2012-04-18
--============================================================
ALTER  PROCEDURE [dbo].[UP_PullDateForUF_SAAI]
as
begin

/*年度收入、应收账款、应付账款、库存账款 
*1.收入账款科目:6001 贷方
*2.应付账款科目:2202 余额-借方+贷方
*3.应收账款科目:1122 余额+借方-贷方
*4.库存账款科目:原材料料借方1403+库存商品借方1405+发出商品借方1406-发出商品贷方1406-存货跌价准备(贷方)1471+生产成本借方(基本生产成本)500101
* LE014 借方 LE017 贷方
*/
--SQL:测试2011年
--今年与去年年份
declare
@year as nchar(4),
@lastyear as nchar(4)
set @year=datepart(year,getdate()) 
set @lastyear=datepart(year,dateadd(year,-1,getdate()))  

/*收入*/
select * into #tb from (
SELECT 'Sales revenue'+LE002  as item , SUM(LE017) amount,'Jan' [month] 
  from ACTLE where LE002 in (@year,@lastyear) AND LEFT(LE001,4)='6001' AND LE003 IN('00','01')
  group by LE002
union all
SELECT 'Sales revenue'+LE002 as item, SUM(LE017) amount,'Feb' [month] 
  from ACTLE where LE002 in (@year,@lastyear)AND LEFT(LE001,4)='6001' AND LE003 IN('00','02')
  group by LE002
union all
SELECT 'Sales revenue'+LE002 as item, SUM(LE017) amount,'Mar' [month]
  from ACTLE where LE002 in (@year,@lastyear) AND LEFT(LE001,4)='6001' AND LE003 IN('00','03')
  group by LE002
union all
SELECT 'Sales revenue'+LE002 as item, SUM(LE017) amount,'Apr' [month]
  from ACTLE where LE002 in (@year,@lastyear) AND LEFT(LE001,4)='6001' AND LE003 IN('00','04')
  group by LE002
union all
SELECT 'Sales revenue'+LE002 as item, SUM(LE017) amount,'May' [month]
  from ACTLE where LE002 in (@year,@lastyear) AND LEFT(LE001,4)='6001' AND LE003 IN('00','05')
  group by LE002
union all
SELECT 'Sales revenue'+LE002 as item, SUM(LE017) amount,'Jun' [month]
  from ACTLE where LE002 in (@year,@lastyear) AND LEFT(LE001,4)='6001' AND LE003 IN('00','06')
  group by LE002
union all
SELECT 'Sales revenue'+LE002 as item, SUM(LE017) amount,'Jul' [month]
  from ACTLE where LE002 in (@year,@lastyear) AND LEFT(LE001,4)='6001' AND LE003 IN('00','07')
  group by LE002
union all
SELECT 'Sales revenue'+LE002 as item, SUM(LE017) amount,'Aug' [month]
  from ACTLE where LE002 in (@year,@lastyear) AND LEFT(LE001,4)='6001' AND LE003 IN('00','08')
  group by LE002
union all
SELECT 'Sales revenue'+LE002 as item, SUM(LE017) amount,'Sep' [month]
  from ACTLE where LE002 in (@year,@lastyear) AND LEFT(LE001,4)='6001' AND LE003 IN('00','09')
  group by LE002
union all
SELECT 'Sales revenue'+LE002 as item, SUM(LE017) amount,'Oct' [month]
  from ACTLE where LE002 in (@year,@lastyear) AND LEFT(LE001,4)='6001' AND LE003 IN('00','10')
   group by LE002
union all
SELECT 'Sales revenue'+LE002 as item, SUM(LE017)   amount, 'Nov' [month]
  from ACTLE where LE002 in (@year,@lastyear) AND LEFT(LE001,4)='6001' AND LE003 IN('00','11')
   group by LE002
union all
SELECT 'Sales revenue'+LE002 as item, SUM(LE017) amount,'Dec' [month]
  from ACTLE where LE002 in (@year,@lastyear) AND LEFT(LE001,4)='6001' AND LE003 IN('00','12')
   group by LE002
)aa


/*应付账款*/

select * into #tb1 from (
SELECT 'Account payable'+LE002 as item, SUM(LE017)-SUM(LE014) amount,'Jan' [month] 
  from ACTLE where LE002 in (@year,@lastyear) AND LEFT(LE001,4)='2202' AND LE003<='01'
   group by LE002
  union all
SELECT 'Account payable'+LE002 as item , SUM(LE017)-SUM(LE014) amount,'Feb' [month] 
  from ACTLE where LE002 in (@year,@lastyear)  AND LEFT(LE001,4)='2202' AND LE003 <='02'
   group by LE002
union all
SELECT 'Account payable'+LE002 as item, SUM(LE017)-SUM(LE014) amount,'Mar' [month]
  from ACTLE where LE002 in (@year,@lastyear)  AND LEFT(LE001,4)='2202' AND LE003 <='03'
   group by LE002
union all
SELECT 'Account payable'+LE002 as item, SUM(LE017)-SUM(LE014) amount,'Apr' [month]
  from ACTLE where LE002 in (@year,@lastyear)  AND LEFT(LE001,4)='2202' AND LE003 <='04'
   group by LE002
union all
SELECT 'Account payable'+LE002 as item, SUM(LE017)-SUM(LE014) amount,'May' [month]
  from ACTLE where LE002 in (@year,@lastyear)  AND LEFT(LE001,4)='2202' AND LE003 <='05'
   group by LE002
union all
SELECT 'Account payable'+LE002 as item, SUM(LE017)-SUM(LE014) amount,'Jun' [month]
  from ACTLE where LE002 in (@year,@lastyear)  AND LEFT(LE001,4)='2202' AND LE003 <='06'
   group by LE002
union all
SELECT 'Account payable'+LE002 as item, SUM(LE017)-SUM(LE014) amount,'Jul' [month]
  from ACTLE where LE002 in (@year,@lastyear)  AND LEFT(LE001,4)='2202' AND LE003 <='07'
   group by LE002
union all
SELECT 'Account payable'+LE002 as item, SUM(LE017)-SUM(LE014) amount,'Aug' [month]
  from ACTLE where LE002 in (@year,@lastyear)  AND LEFT(LE001,4)='2202' AND LE003 <='08'
   group by LE002
union all
SELECT 'Account payable'+LE002 as item, SUM(LE017)-SUM(LE014) amount,'Sep' [month]
  from ACTLE where LE002 in (@year,@lastyear)  AND LEFT(LE001,4)='2202' AND LE003 <='09'
   group by LE002
union all
SELECT 'Account payable'+LE002 as item, SUM(LE017)-SUM(LE014) amount,'Oct' [month]
  from ACTLE where LE002 in (@year,@lastyear) AND LEFT(LE001,4)='2202' AND LE003 <='10'
   group by LE002
union all
SELECT 'Account payable'+LE002 as item, SUM(LE017)-SUM(LE014)   amount, 'Nov' [month]
  from ACTLE where LE002 in (@year,@lastyear)  AND LEFT(LE001,4)='2202' AND LE003 <='11'
   group by LE002
union all
SELECT 'Account payable'+LE002 as item, SUM(LE017)-SUM(LE014) amount,'Dec' [month]
  from ACTLE where LE002 in (@year,@lastyear)  AND LEFT(LE001,4)='2202' AND LE003 <='12'
   group by LE002
)bb
/*应收账款*/
select * into #tb2 from (
SELECT 'Account receivable'+LE002 as item, SUM(LE014)-SUM(LE017) amount,'Feb' [month] 
  from ACTLE where LE002 in (@year,@lastyear) AND LEFT(LE001,4)='1122' AND LE003<='01'
   group by LE002
  union all
SELECT 'Account receivable'+LE002 as item , SUM(LE014)-SUM(LE017) amount,'Jan' [month] 
  from ACTLE where LE002 in (@year,@lastyear) AND LEFT(LE001,4)='1122' AND LE003 <='02'
   group by LE002
union all
SELECT 'Account receivable'+LE002 as item, SUM(LE014)-SUM(LE017) amount,'Feb' [month] 
  from ACTLE where LE002 in (@year,@lastyear) AND LEFT(LE001,4)='1122' AND LE003 <='03'
   group by LE002
union all
SELECT 'Account receivable'+LE002 as item, SUM(LE014)-SUM(LE017) amount,'Mar' [month]
  from ACTLE where LE002 in (@year,@lastyear) AND LEFT(LE001,4)='1122' AND LE003 <='03'
   group by LE002
union all
SELECT 'Account receivable'+LE002 as item, SUM(LE014)-SUM(LE017) amount,'Apr' [month]
  from ACTLE where LE002 in (@year,@lastyear) AND LEFT(LE001,4)='1122' AND LE003 <='04'
   group by LE002
union all
SELECT 'Account receivable'+LE002 as item, SUM(LE014)-SUM(LE017) amount,'May' [month]
  from ACTLE where LE002 in (@year,@lastyear) AND LEFT(LE001,4)='1122' AND LE003 <='05'
   group by LE002
union all
SELECT 'Account receivable'+LE002 as item, SUM(LE014)-SUM(LE017) amount,'Jun' [month]
  from ACTLE where LE002 in (@year,@lastyear) AND LEFT(LE001,4)='1122' AND LE003 <='06'
   group by LE002
union all
SELECT 'Account receivable'+LE002 as item, SUM(LE014)-SUM(LE017) amount,'Jul' [month]
  from ACTLE where LE002 in (@year,@lastyear) AND LEFT(LE001,4)='1122' AND LE003 <='07'
   group by LE002
union all
SELECT 'Account receivable'+LE002 as item, SUM(LE014)-SUM(LE017) amount,'Aug' [month]
  from ACTLE where LE002 in (@year,@lastyear) AND LEFT(LE001,4)='1122' AND LE003 <='08'
   group by LE002
union all
SELECT 'Account receivable'+LE002 as item, SUM(LE014)-SUM(LE017) amount,'Sep' [month]
  from ACTLE where LE002 in (@year,@lastyear) AND LEFT(LE001,4)='1122' AND LE003 <='09'
   group by LE002
union all
SELECT 'Account receivable'+LE002 as item, SUM(LE014)-SUM(LE017)amount,'Oct' [month]
  from ACTLE where LE002 in (@year,@lastyear) AND LEFT(LE001,4)='1122' AND LE003 <='10'
   group by LE002
union all
SELECT 'Account receivable'+LE002 as item, SUM(LE014)-SUM(LE017)  amount, 'Nov' [month]
  from ACTLE where LE002 in (@year,@lastyear) AND LEFT(LE001,4)='1122' AND LE003 <='11'
   group by LE002
union all
SELECT 'Account receivable'+LE002 as item, SUM(LE014)-SUM(LE017) amount,'Dec' [month]
  from ACTLE where LE002 in (@year,@lastyear) AND LEFT(LE001,4)='1122' AND LE003 <='12'
   group by LE002
)cc

/*库存账款*/

select * into #tb3
from(      
select 'Inventories'+LE002 as item, sum(A+B+C+D) amount,'Jan' as [month] from (
SELECT   LE002,
case when LEFT(LE001,4)='1403' then LE014-LE017 ELSE 0 END AS A,
case when LEFT(LE001,6) in ('140501','140502','140503') then LE014-LE017  ELSE 0 END AS B,
case when LEFT(LE001,4)='1471' then LE014-LE017 ELSE 0 END AS C,
case when LEFT(LE001,6)='500101' then LE014-LE017 ELSE 0 END AS D
from ACTLE 
where (LE002 in (@year,@lastyear) AND LEFT(LE001,4) in ('1403','1471') AND LE003 in ('00','01')) 
      or (LE002 in (@year,@lastyear) AND LEFT(LE001,6)in('500101','140502','140501','140503') AND LE003 in ('00','01')) 
 )d
 group by d.LE002
union all
select 'Inventories'+LE002 as item,sum(A+B+C+D) amount,'Feb'   from (
SELECT  LE002,
case when LEFT(LE001,4)='1403' then LE014-LE017 ELSE 0 END AS A,
case when LEFT(LE001,6) in ('140501','140502','140503') then LE014-LE017  ELSE 0 END AS B,
case when LEFT(LE001,4)='1471' then LE014-LE017 ELSE 0 END AS C,
case when LEFT(LE001,6)='500101' then LE014-LE017 ELSE 0 END AS D
from ACTLE 
where (LE002 in (@year,@lastyear) AND LEFT(LE001,4) in ('1403','1471') AND LE003<='02') 
      or (LE002 in (@year,@lastyear) AND LEFT(LE001,6)in('500101','140502','140501','140503') AND LE003<='02')
 )d
  group by d.LE002
 union all
select 'Inventories'+LE002 as item, sum(A+B+C+D) amount,'Mar'  from (
SELECT  LE002,
case when LEFT(LE001,4)='1403' then LE014-LE017 ELSE 0 END AS A,
case when LEFT(LE001,6) in ('140501','140502','140503') then LE014-LE017  ELSE 0 END AS B,
case when LEFT(LE001,4)='1471' then LE014-LE017 ELSE 0 END AS C,
case when LEFT(LE001,6)='500101' then LE014-LE017 ELSE 0 END AS D
from ACTLE 
where (LE002 in (@year,@lastyear) AND LEFT(LE001,4) in ('1403','1471') AND LE003<='03') 
      or (LE002 in (@year,@lastyear) AND LEFT(LE001,6)in('500101','140502','140501','140503') AND LE003<='03')
 )d
  group by d.LE002
union all
select 'Inventories'+LE002 as item,sum(A+B+C+D) amount,'Apr'  from (
SELECT  LE002,
case when LEFT(LE001,4)='1403' then LE014-LE017 ELSE 0 END AS A,
case when LEFT(LE001,6) in ('140501','140502','140503') then LE014-LE017  ELSE 0 END AS B,
case when LEFT(LE001,4)='1471' then LE014-LE017 ELSE 0 END AS C,
case when LEFT(LE001,6)='500101' then LE014-LE017 ELSE 0 END AS D
from ACTLE 
where (LE002 in (@year,@lastyear) AND LEFT(LE001,4) in ('1403','1471') AND LE003<='04') 
      or (LE002 in (@year,@lastyear) AND LEFT(LE001,6)in('500101','140502','140501','140503') AND LE003<='04')
 )d
  group by d.LE002
union all
select 'Inventories'+LE002 as item,sum(A+B+C+D) amount,'May'  from (
SELECT  LE002,
case when LEFT(LE001,4)='1403' then LE014-LE017 ELSE 0 END AS A,
case when LEFT(LE001,6) in ('140501','140502','140503') then LE014-LE017  ELSE 0 END AS B,
case when LEFT(LE001,4)='1471' then LE014-LE017 ELSE 0 END AS C,
case when LEFT(LE001,6)='500101' then LE014-LE017 ELSE 0 END AS D
from ACTLE 
where (LE002 in (@year,@lastyear) AND LEFT(LE001,4) in ('1403','1471') AND LE003<='05') 
      or (LE002 in (@year,@lastyear) AND LEFT(LE001,6)in('500101','140502','140501','140503') AND LE003<='05')
 )d
  group by d.LE002
 union all
select 'Inventories'+LE002 as item,sum(A+B+C+D) amount,'Jun'  from (
SELECT  LE002,
case when LEFT(LE001,4)='1403' then LE014-LE017 ELSE 0 END AS A,
case when LEFT(LE001,6) in ('140501','140502','140503') then LE014-LE017  ELSE 0 END AS B,
case when LEFT(LE001,4)='1471' then LE014-LE017 ELSE 0 END AS C,
case when LEFT(LE001,6)='500101' then LE014-LE017 ELSE 0 END AS D
from ACTLE 
where (LE002 in (@year,@lastyear) AND LEFT(LE001,4) in ('1403','1471') AND LE003<='06') 
      or (LE002 in (@year,@lastyear) AND LEFT(LE001,6)in('500101','140502','140501','140503') AND LE003<='06')
 )d
  group by d.LE002
 union all
select 'Inventories'+LE002 as item,sum(A+B+C+D) amount,'Jul'  from (
SELECT  LE002,
case when LEFT(LE001,4)='1403' then LE014-LE017 ELSE 0 END AS A,
case when LEFT(LE001,6) in ('140501','140502','140503') then LE014-LE017  ELSE 0 END AS B,
case when LEFT(LE001,4)='1471' then LE014-LE017 ELSE 0 END AS C,
case when LEFT(LE001,6)='500101' then LE014-LE017 ELSE 0 END AS D
from ACTLE 
where (LE002 in (@year,@lastyear) AND LEFT(LE001,4) in ('1403','1471') AND LE003<='07') 
      or (LE002 in (@year,@lastyear) AND LEFT(LE001,6)in('500101','140502','140501','140503') AND LE003<='07')
 )d
  group by d.LE002
 union all
select 'Inventories'+LE002 as item,sum(A+B+C+D) amount,'Aug'  from (
SELECT  LE002,
case when LEFT(LE001,4)='1403' then LE014-LE017 ELSE 0 END AS A,
case when LEFT(LE001,6) in ('140501','140502','140503') then LE014-LE017  ELSE 0 END AS B,
case when LEFT(LE001,4)='1471' then LE014-LE017 ELSE 0 END AS C,
case when LEFT(LE001,6)='500101' then LE014-LE017 ELSE 0 END AS D
from ACTLE 
where (LE002 in (@year,@lastyear) AND LEFT(LE001,4) in ('1403','1471') AND LE003<='08') 
      or (LE002 in (@year,@lastyear) AND LEFT(LE001,6)in('500101','140502','140501','140503') AND LE003<='08')
 )d
  group by d.LE002
 union all
select 'Inventories'+LE002 as item,sum(A+B+C+D) amount,'Sep'  from (
SELECT  LE002,
case when LEFT(LE001,4)='1403' then LE014-LE017 ELSE 0 END AS A,
case when LEFT(LE001,6) in ('140501','140502','140503') then LE014-LE017  ELSE 0 END AS B,
case when LEFT(LE001,4)='1471' then LE014-LE017 ELSE 0 END AS C,
case when LEFT(LE001,6)='500101' then LE014-LE017 ELSE 0 END AS D
from ACTLE 
where (LE002 in (@year,@lastyear) AND LEFT(LE001,4) in ('1403','1471') AND LE003<='09') 
      or (LE002 in (@year,@lastyear) AND LEFT(LE001,6)in('500101','140502','140501','140503') AND LE003<='09')
 )d
  group by d.LE002
 union all
select 'Inventories'+LE002 as item,sum(A+B+C+D) amount,'Oct'  from (
SELECT  LE002,
case when LEFT(LE001,4)='1403' then LE014-LE017 ELSE 0 END AS A,
case when LEFT(LE001,6) in ('140501','140502','140503') then LE014-LE017  ELSE 0 END AS B,
case when LEFT(LE001,4)='1471' then LE014-LE017 ELSE 0 END AS C,
case when LEFT(LE001,6)='500101' then LE014-LE017 ELSE 0 END AS D
from ACTLE 
where (LE002 in (@year,@lastyear) AND LEFT(LE001,4) in ('1403','1471') AND LE003<='10') 
      or (LE002 in (@year,@lastyear) AND LEFT(LE001,6)in('500101','140502','140501','140503') AND LE003<='10')
 )d
  group by d.LE002
 union all
select 'Inventories'+LE002 as item,sum(A+B+C+D) amount,'Nov'  from (
SELECT  LE002,
case when LEFT(LE001,4)='1403' then LE014-LE017 ELSE 0 END AS A,
case when LEFT(LE001,6) in ('140501','140502','140503') then LE014-LE017  ELSE 0 END AS B,
case when LEFT(LE001,4)='1471' then LE014-LE017 ELSE 0 END AS C,
case when LEFT(LE001,6)='500101' then LE014-LE017 ELSE 0 END AS D
from ACTLE 
where (LE002 in (@year,@lastyear) AND LEFT(LE001,4) in ('1403','1471') AND LE003<='11') 
      or (LE002 in (@year,@lastyear) AND LEFT(LE001,6)in('500101','140502','140501','140503') AND LE003<='11')
 )d     
  group by d.LE002
union all
select 'Inventories'+LE002 as item,sum(A+B+C+D) amount, 'Dec' from (
SELECT  LE002,
case when LEFT(LE001,4)='1403' then LE014-LE017 ELSE 0 END AS A,
case when LEFT(LE001,6) in ('140501','140502','140503') then LE014-LE017  ELSE 0 END AS B,
case when LEFT(LE001,4)='1471' then LE014-LE017 ELSE 0 END AS C,
case when LEFT(LE001,6)='500101' then LE014-LE017 ELSE 0 END AS D
from ACTLE 
where (LE002 in (@year,@lastyear) AND LEFT(LE001,4) in ('1403','1471') AND LE003<='12') 
      or (LE002 in (@year,@lastyear) AND LEFT(LE001,6)in('500101','140502','140501','140503') AND LE003<='12')
 )d
  group by d.LE002
)dd

/*清除数据*/
delete from UF_SAAI

insert into UF_SAAI(item,Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,[Dec])
select * from(
/*收入*/
select a.item,sum(a.Jan) Jan,sum(a.Feb) Feb,sum(a.Mar) Mar,sum(a.Apr) Apr,sum(a.May) May,sum(a.Jun)Jun,sum(a.Jul)Jul,
sum(a.Aug) Aug,sum(a.Sep) Sep,sum(a.Oct) Oct,sum(a.Nov) Nov,sum(a.[Dec]) [Dec]
from 
(select item, 
case when [month]='Jan' then sum(amount) else 0 End as Jan,
case when [month]='Feb' then sum(amount) else 0 End as Feb,
case when [month]='Mar' then sum(amount) else 0 End as Mar,
case when [month]='Apr' then sum(amount) else 0 End as Apr,
case when [month]='May' then sum(amount) else 0 End as May,
case when [month]='Jun' then sum(amount) else 0 End as Jun,
case when [month]='Jul' then sum(amount) else 0 End as Jul,
case when [month]='Aug' then sum(amount) else 0 End as Aug,
case when [month]='Sep' then sum(amount) else 0 End as Sep,
case when [month]='Oct' then sum(amount) else 0 End as Oct,
case when [month]='Nov' then sum(amount) else 0 End as Nov,
case when [month]='Dec' then sum(amount) else 0 End as [Dec]
from #tb
group by item,[month]
)a
group by a.item
union all

/*应收账款*/
select a.item,sum(a.Jan) Jan,sum(a.Feb) Feb,sum(a.Mar) Mar,sum(a.Apr) Apr,sum(a.May)May,sum(a.Jun)Jun,sum(a.Jul)Jul,
sum(a.Aug) Aug,sum(a.Sep) Sep,sum(a.Oct) Oct,sum(a.Nov) Nov,sum(a.[Dec]) [Dec]
from 
(select item, 
case when [month]='Jan' then sum(amount) else 0 End as Jan,
case when [month]='Feb' then sum(amount) else 0 End as Feb,
case when [month]='Mar' then sum(amount) else 0 End as Mar,
case when [month]='Apr' then sum(amount) else 0 End as Apr,
case when [month]='May' then sum(amount) else 0 End as May,
case when [month]='Jun' then sum(amount) else 0 End as Jun,
case when [month]='Jul' then sum(amount) else 0 End as Jul,
case when [month]='Aug' then sum(amount) else 0 End as Aug,
case when [month]='Sep' then sum(amount) else 0 End as Sep,
case when [month]='Oct' then sum(amount) else 0 End as Oct,
case when [month]='Nov' then sum(amount) else 0 End as Nov,
case when [month]='Dec' then sum(amount) else 0 End as [Dec]
from #tb2
group by item,[month]
)a
group by a.item
union all
/*应付账款*/
select a.item,sum(a.Jan) Jan,sum(a.Feb) Feb,sum(a.Mar) Mar,sum(a.Apr) Apr,sum(a.May)May,sum(a.Jun)Jun,sum(a.Jul)Jul,
sum(a.Aug) Aug,sum(a.Sep) Sep,sum(a.Oct) Oct,sum(a.Nov) Nov,sum(a.[Dec]) [Dec]
from 
(select item, 
case when [month]='Jan' then sum(amount) else 0 End as Jan,
case when [month]='Feb' then sum(amount) else 0 End as Feb,
case when [month]='Mar' then sum(amount) else 0 End as Mar,
case when [month]='Apr' then sum(amount) else 0 End as Apr,
case when [month]='May' then sum(amount) else 0 End as May,
case when [month]='Jun' then sum(amount) else 0 End as Jun,
case when [month]='Jul' then sum(amount) else 0 End as Jul,
case when [month]='Aug' then sum(amount) else 0 End as Aug,
case when [month]='Sep' then sum(amount) else 0 End as Sep,
case when [month]='Oct' then sum(amount) else 0 End as Oct,
case when [month]='Nov' then sum(amount) else 0 End as Nov,
case when [month]='Dec' then sum(amount) else 0 End as [Dec]
from #tb1
group by item,[month]
)a
group by a.item

union all
/*库存账款*/
select a.item,sum(a.Jan) Jan,sum(a.Feb) Feb,sum(a.Mar) Mar,sum(a.Apr) Apr,sum(a.May)May,sum(a.Jun)Jun,sum(a.Jul)Jul,
sum(a.Aug) Aug,sum(a.Sep) Sep,sum(a.Oct) Oct,sum(a.Nov) Nov,sum(a.[Dec]) [Dec]
from 
(select item, 
case when [month]='Jan' then sum(amount) else 0 End as Jan,
case when [month]='Feb' then sum(amount) else 0 End as Feb,
case when [month]='Mar' then sum(amount) else 0 End as Mar,
case when [month]='Apr' then sum(amount) else 0 End as Apr,
case when [month]='May' then sum(amount) else 0 End as May,
case when [month]='Jun' then sum(amount) else 0 End as Jun,
case when [month]='Jul' then sum(amount) else 0 End as Jul,
case when [month]='Aug' then sum(amount) else 0 End as Aug,
case when [month]='Sep' then sum(amount) else 0 End as Sep,
case when [month]='Oct' then sum(amount) else 0 End as Oct,
case when [month]='Nov' then sum(amount) else 0 End as Nov,
case when [month]='Dec' then sum(amount) else 0 End as [Dec]
from #tb3
group by item,[month]
)a
group by a.item
)mm

drop table #tb
drop table #tb1
drop table #tb2
drop table #tb3
end




 

你可能感兴趣的:(JOIN,c,Date,object,null,table)