在ACCESS中有两个表(AttriTable、ValueTable),两个表中均有一个字段为NAME(其中ValueTable中字段NAME的值全部包含在AttriTable中,而且AttriTable中字段NAME的值有些不在ValueTable中),ValueTable中还有另外两个字段为TYPE、AREA(分别用于记录类型和面积),现在要按照Attribue中的NAME字段统计ValueTable中的AREA字段和(要求:如果Attribue中的NAME在ValueTable没有,则该NAME值对应的AREA和则为0),然后将统计值用DataTable的形式获取并捆绑到DataGridView中。该如何实现?如
AttriTable中NAME值分别为
NAME
TD20090001
TD20090002
TD20090003
TD20090004
TD20090005
TD20090006
...ValueTable中NAME、TYPE、AREA值分别为
NAME          TYPE    AREA
TD20090001    101     5.2036  
TD20090001    102     1.4862 
TD20090001    203     0.6324
TD20090003    105     3.3692
TD20090005    151     9.6328
TD20090005    261     2.2360
TD20090006    124     0.7532
...字段统计结果为
NAME           AREA
TD20090001     7.3222
TD20090002     0.0000
TD20090003     3.3692
TD20090004     0.0000
TD20090005    11.8688
TD20090006     0.7532

解决方案 »

  1.   

    select NAME ,sum(AREA) as AREA 
    from  AttriTable as a
    inner join ValueTable as b
    on a.name=b.name
    group by NAME
      

  2.   

    是的,这种方式不会显示为0的NAME呢,还有其他方法么
      

  3.   

    select name ,FORMAT(sum(area),'0.0000') as area from attritable as a left join valuetable as b
    on a.name=b.name group by name
      

  4.   

    5楼完成正确,刚刚测试成功,非常感谢!关键是Left Join