表的格式如下:
需要处理的内容:
1) 需要依据按Region分布的Type为Z1的PJ的个数以及Qty和,如厦门的PJ数为3,产品为Z1的数量为=37+7=44
2)需要依据按Segment分布的PJ个数以及Type为Z1的Qty和,如Segment为Building的PJ个数为2,产品为V1的数量为24,产品为 Z1的数量为7
3)需要以及Type的能不同的PJ和数以及Qty和,如Type为Z1的PJ数为2,数量为37+7=44;Type为V1的PJ数为1,数量为24
4)需要依据Com_Date的时间区间的PJ个数以及Qty的和,如1993-1-1到1995-03-01号之间的项目数以及不同类型的产品和PJ Country Region City Type Qty Segment Com_Date
A1 CN 福建 厦门 Z1 37 Power  08-11-1994
B1 CN 北京 北京 V1 24 Building  03-07-1994
B2 CN 福建 厦门 Z1 7 Building 08-03-1994
A3 CN 浙江 宁波 V2 34 T&D 04-20-1995
A8 CN 山东 青岛 V6 77 T&D 04-07-1994
C7 CN 福建 南京 D1 11 Metal 10-12-1993
E1 CN 福建 厦门 V2 14 Metal 11-02-1995
G5 AU AU AU D1 100 Steel 11-02-1998跪求各位大侠帮助,多谢!

解决方案 »

  1.   

    表的内容重新贴一下:
    PJ Country Region City Type Qty Segment     Com_Date 
    A1 CN      福建    厦门  Z1   37   Power     08-11-1994 
    B1 CN      北京    北京  V1   24   Building  03-07-1994 
    B2 CN      福建    厦门  Z1   7    Building  08-03-1994 
    A3 CN      浙江    宁波  V2   34   T&D       04-20-1995 
    A8 CN      山东    青岛  V6   77   T&D       04-07-1994 
    C7 CN      福建    南京  D1   11   Metal     10-12-1993 
    E1 CN      福建    厦门  V2   14   Metal     11-02-1995 
    G5 AU      AU      AU   D1   100 Steel      11-02-1998 
      

  2.   

    PJ的个数就是项目数量,每一行就是一个PJ,如表中总共有8个PJ
      

  3.   

    create table #T (PJ varchar(2),Country varchar(2),Region varchar(4),City varchar(4),Type varchar(2),Qty int,Segment varchar(8),Com_Date datetime)
    insert into #T
    select 'A1','CN','福建','厦门','Z1',37,'Power','08-11-1994' union all
    select 'B1','CN','北京','北京','V1',24,'Building','03-07-1994' union all
    select 'B2','CN','福建','厦门','Z1',7,'Building','08-03-1994' union all
    select 'A3','CN','浙江','宁波','V2',34,'T&D','04-20-1995' union all
    select 'A8','CN','山东','青岛','V6',77,'T&D','04-07-1994' union all
    select 'C7','CN','福建','南京','D1',11,'Metal','10-12-1993' union all
    select 'E1','CN','福建','厦门','V2',14,'Metal','11-02-1995' union all
    select 'G5','AU','AU','AU','D1',100,'Steel','11-02-1998'select * from #T--1
    select Region,city,Type,count(distinct pj) as pjcnt,sum(Qty) as Qty 
    from #T as a where Type='Z1'
    group by Region,city,Type--2
    select Segment,Type,count(distinct pj) as pjcnt,sum(Qty) as Qty 
    from #T as a where Type='Z1'
    group by Segment,Type--3
    select Type,count(distinct pj) as pjcnt,sum(Qty) as Qty 
    from #T as a where Type='Z1'
    group by Type--4
    select Com_Date,count(distinct pj) as pjcnt,sum(Qty) as Qty 
    from #T as a where Type='Z1'
    group by Com_Date
      

  4.   

    -->生成测试数据
     
    declare @tb table([PJ] nvarchar(2),[Country] nvarchar(2),[Region] nvarchar(2),[City] nvarchar(2),[Type] nvarchar(2),[Qty] int,[Segment] nvarchar(8),[Com_Date] Datetime)
    Insert @tb
    select N'A1',N'CN',N'福建',N'厦门',N'Z1',37,N'Power','08-11-1994' union all
    select N'B1',N'CN',N'北京',N'北京',N'V1',24,N'Building','03-07-1994' union all
    select N'B2',N'CN',N'福建',N'厦门',N'Z1',7,N'Building','08-03-1994' union all
    select N'A3',N'CN',N'浙江',N'宁波',N'V2',34,N'T&D','04-20-1995' union all
    select N'A8',N'CN',N'山东',N'青岛',N'V6',77,N'T&D','04-07-1994' union all
    select N'C7',N'CN',N'福建',N'南京',N'D1',11,N'Metal','10-12-1993' union all
    select N'E1',N'CN',N'福建',N'厦门',N'V2',14,N'Metal','11-02-1995' union all
    select N'G5',N'AU',N'AU',N'AU',N'D1',100,N'Steel','11-02-1998'
    --Select * from @tb
    /*
    1) 需要依据按Region分布的Type为Z1的PJ的个数以及Qty和,如厦门的PJ数为3,产品为Z1的数量为=37+7=44 
    2)需要依据按Segment分布的PJ个数以及Type为Z1的Qty和,如Segment为Building的PJ个数为2,产品为V1的数量为24,产品为 Z1的数量为7 
    3)需要以及Type的能不同的PJ和数以及Qty和,如Type为Z1的PJ数为2,数量为37+7=44;Type为V1的PJ数为1,数量为24 
    4)需要依据Com_Date的时间区间的PJ个数以及Qty的和,如1993-1-1到1995-03-01号之间的项目数以及不同类型的产品和 
    */--select [Region],[city],count(1) as PJ , sum(case when [Type]= 'Z1' then  [Qty] else 0 end) as [Qty] from @tb group by [Region],[city]
    /*
    Region city PJ          Qty
    ------ ---- ----------- -----------
    AU     AU   1           0
    北京     北京   1           0
    福建     南京   1           0
    浙江     宁波   1           0
    山东     青岛   1           0
    福建     厦门   3           44*/
    select [Segment],[Type], count(1) as PJ , sum([Qty]) as [Qty] from @tb group by [Segment],[Type]select [Region],[city],[type],count(1) as PJ , sum([Qty])[Qty] from @tb group by [Region],[city],[Type]...