34,590
社区成员
发帖
与我相关
我的任务
分享
select case when isnull(aaa,'')='' then '合计' end as fname,bbb,sum(a1) as m,
sum(a2) as p,sum(a3) as s
from tb
where (条件表达式)
group by aaa,bbb
with rollup
CASE ftypeid
WHEN 20013 THEN '板材'
WHEN 20014 THEN '线条'
WHEN 40215 THEN '五金'
WHEN 40216 THEN '木方'
WHEN 40217 THEN '工艺门'
WHEN 40218 THEN '工艺品'
WHEN 40219 THEN '油漆'
else '汇总'
END AS fname
;
WITH cte
AS ( SELECT CASE ftypeid
WHEN 20013 THEN '板材'
WHEN 20014 THEN '线条'
WHEN 40215 THEN '五金'
WHEN 40216 THEN '木方'
WHEN 40217 THEN '工艺门'
WHEN 40218 THEN '工艺品'
WHEN 40219 THEN '油漆'
END AS fname ,
ROUND(SUM(D), 2) AS '赊销金额' ,
ROUND(SUM(E), 2) AS '赊销折扣' ,
ROUND(SUM(F), 2) AS '赊销净额' ,
ROUND(SUM(G), 2) AS '现销金额' ,
ROUND(SUM(H), 2) AS '现销折扣' ,
ROUND(SUM(J), 2) AS '现销净额' ,
ROUND(SUM(D + G), 2) AS '总金额' ,
ROUND(SUM(E + H), 2) AS '总折扣' ,
ROUND(SUM(F + J), 2) AS '总净额'
FROM ( SELECT b.fname ,
CASE WHEN c.fsalestyle = 101
THEN ROUND(( d.fauxqty
* d.fconsignprice ), 2)
ELSE 0
END D ,
CASE WHEN c.fsalestyle = 101
THEN d.FDiscountAmount
ELSE 0
END E ,
CASE WHEN c.fsalestyle = 101
THEN d.FConsignAmount
ELSE 0
END F ,
CASE WHEN c.fsalestyle = 100
THEN ROUND(( d.fauxqty
* d.fconsignprice ), 2)
ELSE 0
END G ,
CASE WHEN c.fsalestyle = 100
THEN d.FDiscountAmount
ELSE 0
END H ,
CASE WHEN c.fsalestyle = 100
THEN d.FConsignAmount
ELSE 0
END J ,
a.FTypeID
FROM [AIS20130930153452].[dbo].[t_ICItemBase] a
INNER JOIN [AIS20130930153452].[dbo].[t_item] b ON a.FItemID = b.FItemID
LEFT JOIN [AIS20130930153452].[dbo].[ICStockBillEntry] d ON d.fitemid = b.fitemid
LEFT JOIN [AIS20130930153452].[dbo].[icstockbill] c ON c.finterid = d.FInterID
LEFT JOIN [AIS20130930153452].[dbo].[t_stock] e ON e.fitemid = d.fdcstockid
WHERE b.FItemClassID = 4
AND c.FTranType = 21
) G
GROUP BY CASE ftypeid
WHEN 20013 THEN '板材'
WHEN 20014 THEN '线条'
WHEN 40215 THEN '五金'
WHEN 40216 THEN '木方'
WHEN 40217 THEN '工艺门'
WHEN 40218 THEN '工艺品'
WHEN 40219 THEN '油漆'
END
)
SELECT *
FROM cte
UNION ALL
SELECT '合计' ,
SUM(赊销金额) ,
SUM(赊销折扣) ,
SUM(赊销净额) ,
SUM(现销金额) ,
SUM(现销折扣) ,
SUM(现销净额) ,
SUM(总金额) ,
SUM(总折扣) ,
SUM(总净额)
FROM cte
select aaa,bbb,sum(a1) as m,sum(a2) as p,sum(a3) as s
from tb
where (条件表达式)
group by aaa,bbb
with rollup