select t.tid ,sum(s.sid) from t,s where t.tid=s.sid group by t.tid

解决方案 »

  1.   

    select t.tid,t.field1,...t.fieldn,count(s.sid) as countsid
    from t,s
    where t.tid=s.tid
    group by t.tid,t.field1,...t.fieldn
      

  2.   

    select t.tid,count(*) from t,s where t.tid=s.tid group by t.tid
      

  3.   

    select tid,sumid=isnull((select sum(s.sid) from s where s.tid=t.tid),0)
    from t是COUNT还是SUM没理解清楚题目的意思。
    楼上的:如果t里有某个tid在s里一条都没有,就显示不出来。还有简单的写法吗?
      

  4.   

    select tid,sumid=isnull((select sum(s.sid) from s where s.tid=t.tid),0)
    from t是COUNT还是SUM没理解清楚题目的意思。
    楼上的:如果t里有某个tid在s里一条都没有,就显示不出来。还有简单的写法吗?
      

  5.   

    select t.*,s1.num
    from t,(select tid,count(sid) as num
            from s
            group by tid) s1
    where t.tid=s1.tid
    如果T中tid是关键字,则可以如同Yang_(扬帆破浪) 的方法
      

  6.   

    对,题目有一点没说清楚,现在补充。就是,并不是T表中所有的T.TID在S表中都有对应的S.TID,但要显示的却是所有T.TID的信息和统计量(Count(s.sid))。这样就需要有的统计量显示为0。该怎么做?
      

  7.   

    glust(惜缘)大哥,你太强了!!!
      

  8.   

    这样写可能会比较容易明白:
    SELECT t.tid , 
    (SELECT ISNULL(COUNT(sid),0) FROM s WHERE tid=t.tid) AS s_count
    FROM t