你想干什么啊,
你用下面的语句得到的是两条记录吧
  select * from t_1,t_2 where t_2.p_id=t_1.p_id
当然,汇总后是两被了

解决方案 »

  1.   

    select avg(t_1.p_price) from t_1,t_2 where t_2.p_id=t_1.p_id
      

  2.   

    select sum(t_1.p_price) from t_1 left join t_2 on t_2.p_id=t_1.p_id
      

  3.   

    select * from t_1 where p_id in (select p_id from t_2)
      

  4.   

    首先谢谢大家了。
    但是还是有一点问题。
    我的具体情况如下:
    这是管理一个移民登记信息的,用了三个表t_1,t_2,t_3来记录这些信息,其中t_1记录了移民家庭的信息(共有80多个字段),t_2用来记录移民的家庭成员的信息(有多条记录)。t_3用来记录移民户领取补偿资金的记录(多条)。现在在统计时(三表都有数据要进行统计),我想用一条语句来完成统计(统计项大约有100多项吧!)。我原来用的语句为:
    Select sum(t_1.c_1),sum(t_1.c_2),sum(t_2.c_1),sum(t_2.c_2),sum(t_3.c_1),sum(t_3.c_3) ....   from t_1,t_2,t_3  where t_3.p_id=t_1.p_id and t_2.p_id=t_1.p_id
    这条语句查出来的数据就出错了。t_1表中统计的数据项的值成为t_2,t_3表中关联数据条数的乘积,请问怎么解决呀?
      

  5.   

    建议楼主详细看看JOIN关键字,SQL Server 2000 中文版里面有详细在线帮助