表1
编号 省 县 具体货品
1 HN CS1 abc
2 HN CS2 abcd
3 HN CD abcd
4 HN HY ae 表2
编号 具体货品 大类别
1 abc 1
2 abcd 2
3 abcde 1
4 ae 3 表3
编号 县 市
1 CS1 A1
2 CS2 A1
3 CD A2统计 每个市 大类别各有多少种,大类别的数码不确定
结果
省 市 大类别为1数目 大类别为2 数目 大类别为3数目 大类别为4数目
HN A1 1 1 0 0
HN A2 1 0 0 0大概这样了,求每个市下面的商品大类别的统计
编号 省 县 具体货品
1 HN CS1 abc
2 HN CS2 abcd
3 HN CD abcd
4 HN HY ae 表2
编号 具体货品 大类别
1 abc 1
2 abcd 2
3 abcde 1
4 ae 3 表3
编号 县 市
1 CS1 A1
2 CS2 A1
3 CD A2统计 每个市 大类别各有多少种,大类别的数码不确定
结果
省 市 大类别为1数目 大类别为2 数目 大类别为3数目 大类别为4数目
HN A1 1 1 0 0
HN A2 1 0 0 0大概这样了,求每个市下面的商品大类别的统计
--> 生成测试数据: #T1
if object_id('tempdb.dbo.#T1') is not null drop table #T1
create table #T1 (编号 int,省 varchar(2),市 varchar(2),具体货品 varchar(4))
insert into #T1
select 1,'HN','CS','abc' union all
select 2,'HN','CS','abcd' union all
select 3,'HN','CD','abcd' union all
select 4,'HN','HY','ae'
--> liangCK小梁 于2008-09-17
--> 生成测试数据: #T2
if object_id('tempdb.dbo.#T2') is not null drop table #T2
create table #T2 (编号 int,具体货品 varchar(5),大类别 int)
insert into #T2
select 1,'abc',1 union all
select 2,'abcd',2 union all
select 3,'abcde',1 union all
select 4,'ae',3--SQL查询如下:select a.省,a.市,
SUM(case when b.大类别=1 then 1 else 0 end) [大类别为1],
SUM(case when b.大类别=2 then 1 else 0 end) [大类别为2],
SUM(case when b.大类别=3 then 1 else 0 end) [大类别为3],
SUM(case when b.大类别=4 then 1 else 0 end) [大类别为4]
from #T1 a
join #T2 b
on a.具体货品=b.具体货品
group by a.省,a.市 /*
省 市 大类别为1 大类别为2 大类别为3 大类别为4
---- ---- ----------- ----------- ----------- -----------
HN CD 0 1 0 0
HN CS 1 1 0 0
HN HY 0 0 1 0(3 行受影响)
*/这个对吗?
--> 测试数据: [表1]
if object_id('[表1]') is not null drop table [表1]
create table [表1] (编号 int,省 varchar(2),县 varchar(3),具体货品 varchar(4))
insert into [表1]
select 1,'HN','CS1','abc' union all
select 2,'HN','CS2','abcd' union all
select 3,'HN','CD','abcd' union all
select 4,'HN','HY','ae'
--> 测试数据: [表2]
if object_id('[表2]') is not null drop table [表2]
create table [表2] (编号 int,具体货品 varchar(5),大类别 int)
insert into [表2]
select 1,'abc',1 union all
select 2,'abcd',2 union all
select 3,'abcde',1 union all
select 4,'ae',3
--> 测试数据: [表3]
if object_id('[表3]') is not null drop table [表3]
create table [表3] (编号 int,县 varchar(3),市 varchar(2))
insert into [表3]
select 1,'CS1','A1' union all
select 2,'CS2','A1' union all
select 3,'CD','A2'
select a.省,c.市,
[大类别为1数目]=sum(case 大类别 when 1 then 1 else 0 end),
[大类别为2数目]=sum(case 大类别 when 2 then 1 else 0 end),
[大类别为3数目]=sum(case 大类别 when 3 then 1 else 0 end),
[大类别为4数目]=sum(case 大类别 when 4 then 1 else 0 end)
from 表1 a,表2 b,表3 c where a.编号=b.编号 and b.编号=c.编号 group by a.省,c.市-- 结果:
省 市 大类别为1数目 大类别为2数目 大类别为3数目 大类别为4数目
---- ---- ----------- ----------- ----------- -----------
HN A1 1 1 0 0
HN A2 1 0 0 0