单位名称              专业名称 编制数合计 现有数合计 士官合计
2002师11团22营       气象 14 0 12
2002师3团        气象 99 0 99
2001师2001团2001营       气象 5201 3 5201
2001师2001团2003营       通信 4444 444 4444
2001师5团                气象 15 14 15
2001师5团2003营       通信 33 0 33怎么写一条sql语句实现数据汇总,我的意思是比如说 要统计2001师所有的子单位的数据
然后(请注意需要插入)插入到这个表中而且统计出来的要按 专业分类 就这要这种结果:id      单位名称 专业名称 编制数合计 现有数合计 士官合计
18 2001师 气象 9645   155        51515
19 2001师 通信 5201    45         2151
Dim rs4 As New ADODB.Recordset
    sql = "insert into 数据录入_单位编制数 select '" & rs3!单位全称 & "' as 单位名称,××× as 专业名称,sum(编制数合计) as 编制数合计,sum(现有数合计) as 现有数合计,sum(士官合计) as 士官合计 from 数据录入_单位编制数  where 单位名称='" & rs3!单位全称 & "'group by 单位名称,专业名称 "
    rs4.Open sql, conn, 3, 2注:×××的地方是我不知道怎么写的地方。还有这样写语句对么,能实现插入么?
'" & rs3!单位全称 & "'是我在另外一个表中读取的单位名称。

解决方案 »

  1.   

    1。看sql的值,然后在查询分析器中执行
    select " & rs3!单位全称 & " as 单位名称如果这里你觉得有问题,可以不用变量,先赋值使得整个sql语句执行通过
      

  2.   

    他干吗去拉~~~晕,急死我了 online(龙卷风V2.0--再战江湖) ( ) 信誉:255  2004-07-22 20:41:00  得分: 0  
     
     
       1。看sql的值,然后在查询分析器中执行
    select " & rs3!单位全称 & " as 单位名称如果这里你觉得有问题,可以不用变量,先赋值使得整个sql语句执行通过-----------
    问题是这没有问题。是我打××××的地方。
      
     
      

  3.   

    好像是分组查寻
    select left(单位名称,6) as 单位名称,专业名称,sum(编制数合计) as 编制数合计,sum(现有数合计) as 现有数合计,sum(士官合计) as 士官合计 into 新表名 group by left(单位名称,6),专业名称
    试试看
      

  4.   

    insert into 数据录入_单位编制数 select left('" & rs3!单位全称 & "',5) as 单位名称,专业名称 as 专业名称,sum(编制数合计) as 编制数合计,sum(现有数合计) as 现有数合计,sum(士官合计) as 士官合计 from 数据录入_单位编制数  where 单位名称='" & rs3!单位全称 & "'group by left(单位名称,5),专业名称请问:你的第一个分组汇总的条件是 单位名称中的“XXXX师”,还是该师下面更小的子单位,上面的语句是以 “XXXX师”为第一分组字段的!
      

  5.   

    left('" & rs3!单位全称 & "',5)这句是没有必要的。因为'" & rs3!单位全称 & "'已经把我要汇总的单位的名称穿过来了,也就是说,比如我要汇总2001师的 '" & rs3!单位全称 & "'就代表2001师。
      

  6.   

    >left('" & rs3!单位全称 & "',5)这句是没有必要的。因为'" & rs3!单位全称 & "'已经把我要汇总的单位的名称穿过来了,也就是说,比如我要汇总2001师的 '" & rs3!单位全称 & "'就代表2001师。最前面一个left(单位名称,5)可以不用,后面 where 子句的绝对有必要:
    "insert into 数据录入_单位编制数 select '" &  rs3!单位全称 & "' as 单位名称,专业名称 as 专业名称,sum(编制数合计) as 编制数合计,sum(现有数合计) as 现有数合计,sum(士官合计) as 士官合计 from 数据录入_单位编制数  where left(单位名称,5)='" & rs3!单位全称 & "'group by left(单位名称,5),专业名称"