表中数据如下
  id  ShopCount  region    office    city    area
  43  7          山东      日照办    日照    三庄
  42  44         山东      日照办    日照    涛雒
  41  8          山东      日照办    日照    西湖
  51  127        山东      潍坊办    潍坊    潍坊城区1
  52  185        山东      潍坊办    潍坊    潍坊城区2
  53  188        山东      潍坊办    潍坊    潍坊城区3
  56  174        山东      潍坊办    诸城    乡镇东线
  55  138        山东      潍坊办    诸城    乡镇西线
  54  394        山东      潍坊办    诸城    诸城城区
  75  104        河北     石家庄办   石家庄  桥东区
  73  66         河北     石家庄办   石家庄  桥西中山路北
  74  36         河北     石家庄办   石家庄  桥西中山路南
  76  106        河北     石家庄办   石家庄  石家庄直属    
查询结果
  id  ShopCount  region    office    city    area           RegionCount    OfficeCount    CityCount
  43  7          山东      日照办    日照    三庄           1265           59             59        
  42  44         山东      日照办    日照    涛雒           1265           59             59
  41  8          山东      日照办    日照    西湖           1265           59             59
  51  127        山东      潍坊办    潍坊    潍坊城区1      1265           1206           500                
  52  185        山东      潍坊办    潍坊    潍坊城区2      1265           1206           500
  53  188        山东      潍坊办    潍坊    潍坊城区3      1265           1206           500
  56  174        山东      潍坊办    诸城    乡镇东线       1265           1206           706            
  55  138        山东      潍坊办    诸城    乡镇西线       1265           1206           706 
  54  394        山东      潍坊办    诸城    诸城城区       1265           1206           706 
  75  104        河北      石家庄办  石家庄  桥东区         312            312            312       
  73  66         河北      石家庄办  石家庄  桥西中山路北   312            312            312
  74  36         河北      石家庄办  石家庄  桥西中山路南   312            312            312
  76  106        河北      石家庄办  石家庄  石家庄直属     312            312            312

解决方案 »

  1.   

    晕啊,乱了,重发查询结果
    id ShopCount region office   city   area         RegionCount  OfficeCount  CityCount
    43 7         山东   日照办   日照   三庄         1265         59           59        
    42 44        山东   日照办   日照   涛雒         1265         59           59
    41 8         山东   日照办   日照   西湖         1265         59           59
    51 127       山东   潍坊办   潍坊   潍坊城区1    1265         1206         500                
    52 185       山东   潍坊办   潍坊   潍坊城区2    1265         1206         500
    53 188       山东   潍坊办   潍坊   潍坊城区3    1265         1206         500
    56 174       山东   潍坊办   诸城   乡镇东线     1265         1206         706            
    55 138       山东   潍坊办   诸城   乡镇西线     1265         1206         706 
    54 394       山东   潍坊办   诸城   诸城城区     1265         1206         706 
    75 104       河北   石家庄办 石家庄 桥东区       312          312          312       
    73 66        河北   石家庄办 石家庄 桥西中山路北 312          312          312
    74 36        河北   石家庄办 石家庄 桥西中山路南 312          312          312
    76 106       河北   石家庄办 石家庄 石家庄直属   312          312          312
      

  2.   

    还乱,再发id ShopCount region office   city   area         RegionCount  OfficeCount  CityCount
    43 7         山东   日照办   日照   三庄         1265         59           59        
    42 44        山东   日照办   日照   涛雒         1265         59           59
    41 8         山东   日照办   日照   西湖         1265         59           59
    51 127       山东   潍坊办   潍坊   潍坊城区1    1265         1206         500 
    52 185       山东   潍坊办   潍坊   潍坊城区2    1265         1206         500
    53 188       山东   潍坊办   潍坊   潍坊城区3    1265         1206         500
    56 174       山东   潍坊办   诸城   乡镇东线     1265         1206         706
    55 138       山东   潍坊办   诸城   乡镇西线     1265         1206         706 
    54 394       山东   潍坊办   诸城   诸城城区     1265         1206         706 
    75 104       河北   石家庄办 石家庄 桥东区       312          312          312       
    73 66        河北   石家庄办 石家庄 桥西中山路北 312          312          312
    74 36        河北   石家庄办 石家庄 桥西中山路南 312          312          312
    76 106       河北   石家庄办 石家庄 石家庄直属   312          312          312
      

  3.   

    表中有每个area(片区)的shop统计,要求查询结果出来后,计算出每个city(城市)、office(办事处)、region(大区)下的shop数量
      

  4.   

    Select
    *,
    (Select SUM(ShopCount) From 表 Where region = A.region) As RegionCount,
    (Select SUM(ShopCount) From 表 Where office = A.office) As RegionCount,
    (Select SUM(ShopCount) From 表 Where city = A.city) As RegionCount
    From
    表 A
      

  5.   


     declare @ta table(id int,ShopCount int, region varchar(5),office varchar(10),city varchar(10),area varchar(20))
    insert @ta select 43,  7,          '山东',      '日照办',    '日照',    '三庄'
    insert @ta select 42,  44,         '山东',      '日照办',    '日照',    '涛雒'
    insert @ta select 41,  8,          '山东',      '日照办',    '日照',    '西湖'
    insert @ta select 51,  127,        '山东',      '潍坊办',    '潍坊',    '潍坊城区1'
    insert @ta select 52,  185,        '山东',      '潍坊办',    '潍坊',    '潍坊城区2'
    insert @ta select 53,  188,        '山东',      '潍坊办',    '潍坊',    '潍坊城区3'
    insert @ta select 56,  174,        '山东',      '潍坊办',    '诸城',    '乡镇东线'
    insert @ta select 55,  138,        '山东',      '潍坊办',    '诸城',    '乡镇西线'
    insert @ta select 54,  394,        '山东',      '潍坊办',    '诸城',    '诸城城区'
    insert @ta select 75,  104,        '河北',     '石家庄办',   '石家庄',  '桥东区'
    insert @ta select 73,  66,         '河北',     '石家庄办',   '石家庄',  '桥西中山路北'
    insert @ta select 74,  36,         '河北',     '石家庄办',   '石家庄',  '桥西中山路南'
    insert @ta select 76,  106,        '河北',     '石家庄办',   '石家庄',  '石家庄直属'  select *,
    RegionCount=(select sum(shopcount) from @ta where region=a.region),
    OfficeCount=(select sum(shopcount) from @ta where office=a.office), 
    OfficeCount=(select sum(shopcount) from @ta where city=a.city)
    from @ta a
    (1 行受影响)(1 行受影响)(1 行受影响)(1 行受影响)(1 行受影响)(1 行受影响)(1 行受影响)(1 行受影响)(1 行受影响)(1 行受影响)(1 行受影响)(1 行受影响)(1 行受影响)
    id          ShopCount   region office     city       area                 RegionCount OfficeCount OfficeCount
    ----------- ----------- ------ ---------- ---------- -------------------- ----------- ----------- -----------
    43          7           山东     日照办        日照         三庄                   1265        59          59
    42          44          山东     日照办        日照         涛雒                   1265        59          59
    41          8           山东     日照办        日照         西湖                   1265        59          59
    51          127         山东     潍坊办        潍坊         潍坊城区1                1265        1206        500
    52          185         山东     潍坊办        潍坊         潍坊城区2                1265        1206        500
    53          188         山东     潍坊办        潍坊         潍坊城区3                1265        1206        500
    56          174         山东     潍坊办        诸城         乡镇东线                 1265        1206        706
    55          138         山东     潍坊办        诸城         乡镇西线                 1265        1206        706
    54          394         山东     潍坊办        诸城         诸城城区                 1265        1206        706
    75          104         河北     石家庄办       石家庄        桥东区                  312         312         312
    73          66          河北     石家庄办       石家庄        桥西中山路北               312         312         312
    74          36          河北     石家庄办       石家庄        桥西中山路南               312         312         312
    76          106         河北     石家庄办       石家庄        石家庄直属                312         312         312(13 行受影响)
      

  6.   

    Create Table 表
    (id Int,
     ShopCount Int,
     region Nvarchar(10),
     office Nvarchar(20),
     city Nvarchar(30),
     area Nvarchar(30))
    Insert 表 Select   43,  7,           N'山东',      N'日照办',        N'日照',      N'三庄'
    Union All Select   42,  44,         N'山东',      N'日照办',        N'日照',      N'涛雒'
    Union All Select   41,  8,           N'山东',      N'日照办',        N'日照',      N'西湖'
    Union All Select   51,  127,       N'山东',      N'潍坊办',        N'潍坊',      N'潍坊城区1'
    Union All Select   52,  185,       N'山东',      N'潍坊办',        N'潍坊',      N'潍坊城区2'
    Union All Select   53,  188,       N'山东',      N'潍坊办',        N'潍坊',      N'潍坊城区3'
    Union All Select   56,  174,       N'山东',      N'潍坊办',        N'诸城',      N'乡镇东线'
    Union All Select   55,  138,       N'山东',      N'潍坊办',        N'诸城',      N'乡镇西线'
    Union All Select   54,  394,       N'山东',      N'潍坊办',        N'诸城',      N'诸城城区'
    Union All Select   75,  104,       N'河北',      N'石家庄办',    N'石家庄',  N'桥东区'
    Union All Select   73,  66,         N'河北',      N'石家庄办',    N'石家庄',  N'桥西中山路北'
    Union All Select   74,  36,         N'河北',      N'石家庄办',    N'石家庄',  N'桥西中山路南'
    Union All Select   76,  106,       N'河北',      N'石家庄办',    N'石家庄',  N'石家庄直属' 
    GO
    Select
    *,
    (Select SUM(ShopCount) From 表 Where region = A.region) As RegionCount,
    (Select SUM(ShopCount) From 表 Where office = A.office) As RegionCount,
    (Select SUM(ShopCount) From 表 Where city = A.city) As RegionCount
    From
    表 A
    GO
    Drop Table 表
    --Result
    /*
    id ShopCount region office city area RegionCount OfficeCount CityCount
    43 7 山东 日照办 日照 三庄 1265 59 59
    42 44 山东 日照办 日照 涛雒 1265 59 59
    41 8 山东 日照办 日照 西湖 1265 59 59
    51 127 山东 潍坊办 潍坊 潍坊城区1 1265 1206 500
    52 185 山东 潍坊办 潍坊 潍坊城区2 1265 1206 500
    53 188 山东 潍坊办 潍坊 潍坊城区3 1265 1206 500
    56 174 山东 潍坊办 诸城 乡镇东线 1265 1206 706
    55 138 山东 潍坊办 诸城 乡镇西线 1265 1206 706
    54 394 山东 潍坊办 诸城 诸城城区 1265 1206 706
    75 104 河北 石家庄办 石家庄 桥东区 312 312 312
    73 66 河北 石家庄办 石家庄 桥西中山路北 312 312 312
    74 36 河北 石家庄办 石家庄 桥西中山路南 312 312 312
    76 106 河北 石家庄办 石家庄 石家庄直属 312 312 312
    */
      

  7.   

    別名寫錯了Select
    A.*,
    (Select SUM(ShopCount) From 表 Where region = A.region) As RegionCount,
    (Select SUM(ShopCount) From 表 Where office = A.office) As OfficeCount,
    (Select SUM(ShopCount) From 表 Where city = A.city) As CityCount
    From
    表 A
      

  8.   

    如果不想用子查詢,也可以用關聯的方法,效率更優Create Table 表
    (id Int,
     ShopCount Int,
     region Nvarchar(10),
     office Nvarchar(20),
     city Nvarchar(30),
     area Nvarchar(30))
    Insert 表 Select   43,  7,           N'山东',      N'日照办',        N'日照',      N'三庄'
    Union All Select   42,  44,         N'山东',      N'日照办',        N'日照',      N'涛雒'
    Union All Select   41,  8,           N'山东',      N'日照办',        N'日照',      N'西湖'
    Union All Select   51,  127,       N'山东',      N'潍坊办',        N'潍坊',      N'潍坊城区1'
    Union All Select   52,  185,       N'山东',      N'潍坊办',        N'潍坊',      N'潍坊城区2'
    Union All Select   53,  188,       N'山东',      N'潍坊办',        N'潍坊',      N'潍坊城区3'
    Union All Select   56,  174,       N'山东',      N'潍坊办',        N'诸城',      N'乡镇东线'
    Union All Select   55,  138,       N'山东',      N'潍坊办',        N'诸城',      N'乡镇西线'
    Union All Select   54,  394,       N'山东',      N'潍坊办',        N'诸城',      N'诸城城区'
    Union All Select   75,  104,       N'河北',      N'石家庄办',    N'石家庄',  N'桥东区'
    Union All Select   73,  66,         N'河北',      N'石家庄办',    N'石家庄',  N'桥西中山路北'
    Union All Select   74,  36,         N'河北',      N'石家庄办',    N'石家庄',  N'桥西中山路南'
    Union All Select   76,  106,       N'河北',      N'石家庄办',    N'石家庄',  N'石家庄直属' 
    GO
    Select
    A.*,
    B.RegionCount,
    C.OfficeCount,
    D.CityCount
    From
    表 A
    Inner Join
    (Select region, SUM(ShopCount) As RegionCount From 表 Group By region) B
    On A.region = B.region
    Inner Join
    (Select office, SUM(ShopCount) As OfficeCount From 表 Group By office) C
    On A.office = C.office
    Inner Join
    (Select city, SUM(ShopCount) As CityCount From 表 Group By city) D
    On A.city = D.city
    GO
    Drop Table 表
    --Result
    /*
    id ShopCount region office city area RegionCount OfficeCount CityCount
    43 7 山东 日照办 日照 三庄 1265 59 59
    42 44 山东 日照办 日照 涛雒 1265 59 59
    41 8 山东 日照办 日照 西湖 1265 59 59
    51 127 山东 潍坊办 潍坊 潍坊城区1 1265 1206 500
    52 185 山东 潍坊办 潍坊 潍坊城区2 1265 1206 500
    53 188 山东 潍坊办 潍坊 潍坊城区3 1265 1206 500
    56 174 山东 潍坊办 诸城 乡镇东线 1265 1206 706
    55 138 山东 潍坊办 诸城 乡镇西线 1265 1206 706
    54 394 山东 潍坊办 诸城 诸城城区 1265 1206 706
    75 104 河北 石家庄办 石家庄 桥东区 312 312 312
    73 66 河北 石家庄办 石家庄 桥西中山路北 312 312 312
    74 36 河北 石家庄办 石家庄 桥西中山路南 312 312 312
    76 106 河北 石家庄办 石家庄 石家庄直属 312 312 312
    */
      

  9.   


     declare @ta table(id int,ShopCount int, region varchar(5),office varchar(10),city varchar(10),area varchar(20))
    insert @ta select 43,  7,          '山东',      '日照办',    '日照',    '三庄'
    insert @ta select 42,  44,         '山东',      '日照办',    '日照',    '涛雒'
    insert @ta select 41,  8,          '山东',      '日照办',    '日照',    '西湖'
    insert @ta select 51,  127,        '山东',      '潍坊办',    '潍坊',    '潍坊城区1'
    insert @ta select 52,  185,        '山东',      '潍坊办',    '潍坊',    '潍坊城区2'
    insert @ta select 53,  188,        '山东',      '潍坊办',    '潍坊',    '潍坊城区3'
    insert @ta select 56,  174,        '山东',      '潍坊办',    '诸城',    '乡镇东线'
    insert @ta select 55,  138,        '山东',      '潍坊办',    '诸城',    '乡镇西线'
    insert @ta select 54,  394,        '山东',      '潍坊办',    '诸城',    '诸城城区'
    insert @ta select 75,  104,        '河北',     '石家庄办',   '石家庄',  '桥东区'
    insert @ta select 73,  66,         '河北',     '石家庄办',   '石家庄',  '桥西中山路北'
    insert @ta select 74,  36,         '河北',     '石家庄办',   '石家庄',  '桥西中山路南'
    insert @ta select 76,  106,        '河北',     '石家庄办',   '石家庄',  '石家庄直属'  select a.*, b.ShopCount,c.OfficeCount
    from @ta a ,
    (select region,ShopCount=sum(ShopCount)
    from @ta  group by region)b ,
    (select office,OfficeCount=sum(ShopCount)
    from @ta  group by office)c
    where a.region=b.region and a.office=c.office 
    (1 行受影响)(1 行受影响)(1 行受影响)(1 行受影响)(1 行受影响)(1 行受影响)(1 行受影响)(1 行受影响)(1 行受影响)(1 行受影响)(1 行受影响)(1 行受影响)(1 行受影响)
    id          ShopCount   region office     city       area                 ShopCount   OfficeCount
    ----------- ----------- ------ ---------- ---------- -------------------- ----------- -----------
    43          7           山东     日照办        日照         三庄                   1265        59
    42          44          山东     日照办        日照         涛雒                   1265        59
    41          8           山东     日照办        日照         西湖                   1265        59
    75          104         河北     石家庄办       石家庄        桥东区                  312         312
    73          66          河北     石家庄办       石家庄        桥西中山路北               312         312
    74          36          河北     石家庄办       石家庄        桥西中山路南               312         312
    76          106         河北     石家庄办       石家庄        石家庄直属                312         312
    51          127         山东     潍坊办        潍坊         潍坊城区1                1265        1206
    52          185         山东     潍坊办        潍坊         潍坊城区2                1265        1206
    53          188         山东     潍坊办        潍坊         潍坊城区3                1265        1206
    56          174         山东     潍坊办        诸城         乡镇东线                 1265        1206
    55          138         山东     潍坊办        诸城         乡镇西线                 1265        1206
    54          394         山东     潍坊办        诸城         诸城城区                 1265        1206(13 行受影响)