有两个表如下,
表1NO   val1
1    300
1    200
2    100
2    200表二No   val2
1    1000
2     270查询结果要求是No  val1  val2
1   500   1000
2   300   270

解决方案 »

  1.   

    select a.no,val1,val2
    from
    (select no,val1=sum(val1) from ta group by no
    )a,
    (select no,val2=sum(val2) from tb group by no
    )b
    where a.no=b.no
      

  2.   

    SELECT A.NO,A.val1,B.val2
    FROM
    (SELECT NO,SUM(val1) AS val1 FROM 表1 GROUP BY NO) A JOIN 表二 B ON A.NO=B.NO
      

  3.   

    select t2.no , (select sum(val1) from t1 where t1.no = t2.no) val1 , val2 from t2
      

  4.   

    create table t1(NO int,val1 int)
    insert into t1 values(1 ,300)
    insert into t1 values(1 ,200)
    insert into t1 values(2 ,100)
    insert into t1 values(2 ,200)
    create table t2(No int,val2 int)
    insert into t2 values(1 ,1000)
    insert into t2 values(2 ,270)
    goselect t2.no , (select sum(val1) from t1 where t1.no = t2.no) val1 , val2 from t2drop table t1 , t2/*
    no          val1        val2        
    ----------- ----------- ----------- 
    1           500         1000
    2           300         270(所影响的行数为 2 行)
    */
      

  5.   

    create table t1(NO int,val1 int)
    insert into t1 values(1 ,300)
    insert into t1 values(1 ,200)
    insert into t1 values(2 ,100)
    insert into t1 values(2 ,200)
    create table t2(No int,val2 int)
    insert into t2 values(1 ,1000)
    insert into t2 values(2 ,270)
    go--如果你两表no不一定存在对应
    select t2.no , (select sum(val1) from t1 where t1.no = t2.no) val1 , val2 from t2 order by t2.no--如果你两表no一定存在对应
    select t2.no , sum(val1) val1 , t2.val2 from t2 , t1 where t2.no = t1.no group by t2.no , t2.val2 order by t2.no drop table t1 , t2/*
    no          val1        val2        
    ----------- ----------- ----------- 
    1           500         1000
    2           300         270(所影响的行数为 2 行)
    */