我一个DBGrid要显示多表中的字段,有表people,area,T_pig,三表中的字段不是一一对应的,想通过表people与表area中的vollage字段相等来查出表area中的docoter字段,想通过people表与T_pig表中的name字段来查出T_pig表中的T_g_num,T_m_num的字段的和,也就是说不是一一对应的关系,是一对多的关系,我的sQL语句是下面这样写的,但系统报From附近有错,望各位大虾指点迷津或是否有更好的方法!select a.*,sum(c.T_m_pig) as count_m,sum(c.T_g_pig) as count_g,b.docoter as ttt_doc 
from people a
full outer join(area b join T_pig c)
on a.vollage = b.vollage and a.name = c.name

解决方案 »

  1.   

    from people a
    full outer join area b join T_pig c
    /*把括号去掉是是*/
      

  2.   

    补充一句,用的是Access数据库
      

  3.   

    我记得delphi不支持full outer 语句
      

  4.   

    Access支持视图吗??不行吧!另,去掉括号了也不行啊,
      

  5.   

    那他支持left join啊,我再换换试了,还是报同样的错误啊!!
      

  6.   

    Access   视图<=>查询
      

  7.   

    你是不能直接用SUM的要用SUM 还得用GROUP BY 
    但又不能和A。*连用,
    应用SELECT SUM  完以后,再用SELECT 语句查询才行
      

  8.   

    基本同意楼上所述:
    例:
    TABLE1 (A,B,C,D)//括号中是字段,下同。
    TABLE2 (A,E,F,G)
    TABLE3 (E,H,I,J)SQL示例:
    SELECT T1.A,T1.B,T1.C,T1.D,T2.E,SUM(T2.F) AS F_SUM,SUM(T3.J) AS J_SUM
    FROM TABLE1 AS T1,TABLE2 AS T2,TABLE3 AS T3
    WHERE
         T1.A=T2.A
     AND T2.E=T3.E
    GROUP BY T1.A,T1.B,T1.C,T1.D,T2.E
      

  9.   

    楼上的代码还是不行,
    现在的问题简单一些了,希望有高手能帮我搞掂:
    TABLE1 (A,B,C,D)//括号中是字段,下同。
    TABLE2 (A,E,F,G)
    问题是:
    我要选择出Table1表中的一些字段,A、B、C,然后求出所有满足Table2表中G字段等于Table1中的A字段的时候E字段的和以及F字段的和,作为显示在DBGrid中。