求个sql 数据源是excel

aelfintiger 2016-06-13 03:29:35
客户编码 存货分类 合计
批发001 白酒汾酒 1000
批发002 白酒衡水 2000
酒店001 白酒红星 3000
酒店002 白酒红星 3000
酒店003 红酒王朝 3000


求个sql得到如下表:

类别 品牌 批发合计 酒店合计
白酒 汾酒 1000 0
白酒 衡水 2000 0
白酒 红星 0 6000
红酒 王朝 0 3000












...全文
188 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ptvbs 2016-06-13
  • 打赏
  • 举报
回复
如图:
足球不是方的 2016-06-13
  • 打赏
  • 举报
回复
select a.存货分类,isnull(b.批发合计,0),isnull(c.酒店合计,0) from (select distinct 存货分类 from t1 ) a lef join ( select sum(合计)批发合计,存货分类 from t1 where 客户编码like '%批发%' group by 存货分类) b on a.存货分类=b.存货分类 left join ( select sum(合计)酒店合计,存货分类 from t1 where 客户编码like '%酒店%' group by 存货分类) c on a.存货分类=c.存货分类
中国风 2016-06-13
  • 打赏
  • 举报
回复
存货分类 固定为取前2个字符为类别时这样用
use Tempdb
go
--> --> 
 
declare @T table([客户编码] nvarchar(25),[存货分类] nvarchar(24),[合计] int)
Insert @T
select N'批发001',N'白酒汾酒',1000 union all
select N'批发002',N'白酒衡水',2000 union all
select N'酒店001',N'白酒红星',3000 union all
select N'酒店002',N'白酒红星',3000 union all
select N'酒店003',N'红酒王朝',3000
 
Select LEFT([存货分类],2) AS 类别,STUFF([存货分类],1,2,'') AS 品牌,SUM(CASE WHEN [客户编码] LIKE N'批发%' THEN [合计] ELSE 0 END) AS [批发],SUM(CASE WHEN [客户编码] LIKE N'酒店%' THEN [合计] ELSE 0 END) AS [酒店] from @T GROUP BY [存货分类]
/*
类别	品牌	批发	酒店
白酒	汾酒	1000	0
白酒	衡水	2000	0
白酒	红星	0	6000
红酒	王朝	0	3000
*/

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧