有两张表,一张分类表,一张数据表。分类表FLK年度 编码 分类名称 部门 分类级次 是否末级
YEAR DM TITLE DEPT JC ISEND
2012 001 配件 1 0
2012 00101 眼镜 销售一部 2 1
2012 002 男装 1 0
2012 00201 衬衫 销售二部 2 1
2012 00202 裤子 2 0
2012 0020201 长裤 销售三部 3 1
2012 0020202 短裤 销售一部 3 1数据表FLMX年度 编码 店铺 网络 其他
YEAR XMDM DIANMIAN WANGLUO QITA
2012 00101 60 40
2012 00201 50 30
2012 0020201 100 20
2012 0020202 25 70 5要求结果得出:
----------------------------------------------------------------------
年度 编码 分类名称 部门 合计 店铺 网络 其他
YEAR DM TITLE DEPT HJ DIANMIAN WANGLUO QITA
2012 001 配件 100 60 40
2012 00101 眼镜 销售一部 100 60 40
2012 002 男装 300 175 120 5
2012 00201 衬衫 销售二部 80 50 30
2012 00202 裤子 220 125 90 5
2012 0020201 长裤 销售三部 120 100 20
2012 0020202 短裤 销售一部 100 25 70 5
YEAR DM TITLE DEPT JC ISEND
2012 001 配件 1 0
2012 00101 眼镜 销售一部 2 1
2012 002 男装 1 0
2012 00201 衬衫 销售二部 2 1
2012 00202 裤子 2 0
2012 0020201 长裤 销售三部 3 1
2012 0020202 短裤 销售一部 3 1数据表FLMX年度 编码 店铺 网络 其他
YEAR XMDM DIANMIAN WANGLUO QITA
2012 00101 60 40
2012 00201 50 30
2012 0020201 100 20
2012 0020202 25 70 5要求结果得出:
----------------------------------------------------------------------
年度 编码 分类名称 部门 合计 店铺 网络 其他
YEAR DM TITLE DEPT HJ DIANMIAN WANGLUO QITA
2012 001 配件 100 60 40
2012 00101 眼镜 销售一部 100 60 40
2012 002 男装 300 175 120 5
2012 00201 衬衫 销售二部 80 50 30
2012 00202 裤子 220 125 90 5
2012 0020201 长裤 销售三部 120 100 20
2012 0020202 短裤 销售一部 100 25 70 5
go
create table [FLK]([YEAR] int,[DM] varchar(7),[TITLE] varchar(4),[DEPT] varchar(8),[JC] int,[ISEND] int)
insert [FLK]
select 2012,'001','配件',null,1,0 union all
select 2012,'00101','眼镜','销售一部',2,1 union all
select 2012,'002','男装',null,1,0 union all
select 2012,'00201','衬衫','销售二部',2,1 union all
select 2012,'00202','裤子',null,2,0 union all
select 2012,'0020201','长裤','销售三部',3,1 union all
select 2012,'0020202','短裤','销售一部',3,1
go
if object_id('[FLMX]') is not null drop table [FLMX]
go
create table [FLMX]([YEAR] int,[XMDM] varchar(7),[DIANMIAN] int,[WANGLUO] int,[QITA] int)
insert [FLMX]
select 2012,'00101',60,40,null union all
select 2012,'00201',50,30,null union all
select 2012,'0020201',100,20,null union all
select 2012,'0020202',25,70,5
goSELECT A.[YEAR], A.DM, A.TITLE, A.DEPT,
HJ=SUM(ISNULL(B.DIANMIAN,0)+ISNULL(B.WANGLUO,0)+ISNULL(B.QITA,0)),
DIANMIAN=SUM(DIANMIAN),
WANGLUO=SUM(WANGLUO),
QITA=SUM(QITA)
FROM [FLK] A
LEFT JOIN FLMX B ON A.[YEAR]=B.[YEAR] AND [XMDM] LIKE '%'+A.[DM]+'%'
GROUP BY A.[YEAR], A.DM, A.TITLE, A.DEPT/**
YEAR DM TITLE DEPT HJ DIANMIAN WANGLUO QITA
----------- ------- ----- -------- ----------- ----------- ----------- -----------
2012 001 配件 NULL 100 60 40 NULL
2012 00101 眼镜 销售一部 100 60 40 NULL
2012 002 男装 NULL 300 175 120 5
2012 00201 衬衫 销售二部 80 50 30 NULL
2012 00202 裤子 NULL 220 125 90 5
2012 0020201 长裤 销售三部 120 100 20 NULL
2012 0020202 短裤 销售一部 100 25 70 5(7 行受影响)
**/