================
dbo.trade
id,parentid,name
eg:
1,0,广东
2,1,广州
3,1,深圳
4,0,湖南...
================
dbo.product
id,productname,tradeid,tg要查出
====================================
trade.id,trade.name,(product.tg=1的条数)
eg:
1,广东,10(个)
4,湖南,5...
不知道表达清楚没有,请问如何查询

解决方案 »

  1.   

    select id,sum(paentid),name
    from trade
    group by  id,name试试
      

  2.   

    这样只是单个表的查询,要跟product联合起来
    trade.id,trade.name,(product.tg=1的条数) 
      

  3.   


    select t.id,t.name,count(tg) 
    from trade as t,product as p
    where p.tg=1 and t.id = p.tradeid 
    group by t.name
      

  4.   


    select 
    a.id,a.name,count(b.tg)
    from 
    trade a left join product b 
    on 
    a.id=b.tradeid
    where 
    b.tg=1
    group by 
    a.id,a.name
      

  5.   

    select a.id,a.name,count(*) from dbo.trade a join dbo.product b on a.id=b.tradeid
    where b.tg=1
    group by a.id,a.name
      

  6.   

    你这个不难,表的格式你虽然写得不清楚.但联系你写的不够,最好给点数据讲明白点!如果你是要统计product表中各地区的数量的话,你可以这样试试!
    select distinct(p.tradeid),t.name,sum(p.tradeid)
    from product p left outer join trade t on p.tradeid=t.id
    group by p.tradeid,t.name
      

  7.   

    不好意思.应该是count
    select   distinct(p.tradeid),t.name,count(p.tradeid) 
    from   product   p   left   outer   join   trade   t   on   p.tradeid=t.id 
    where p.tag=1
    group   by   p.tradeid,t.name 
      

  8.   

    select trade.id, trade.name, count(product.tg)
    from trade inner join product
    on trade.id = product.tradeid
    where product.tg = 1
    group by trade.id, trade.name
      

  9.   

    给点数据表达
    dbo.trade
    字段:id,parentid,name 
    数据:
    1,0,广东 
    2,1,广州 
    3,1,深圳 
    4,0,湖南
    5,4,衡阳
    ----------------------------
    dbo.product
    字段:id,productname,trade(此trade为dbo.trade.id,此parentid!=0,后面要得到的是parentid==0)
    数据:
    1,沙发,2
    2,板凳,3
    3,椅子,5
    4,桌子,5
    5,麻将桌,5
    ---------------------------
    查询结果应该为
    1,广东,2
    4,湖南,3
    共5个产品,广东2个,湖南3个....
      

  10.   

    請問樓主trade表中的層數是不固定的,對嗎? 
      

  11.   

    问题就在这里理解有无,这个trade表是个无限极分类的东东,但我只做了两级
    1,0,广东   
    2,1,广州   
    3,1,深圳   
    4,0,湖南 
    5,4,衡阳 
    上面是trade的数据
    而产品表中trade是dbo.trade.id 且parentid!=0
    1,沙发,2 (为广州,而要得到的数据是整个广东的)
    2,板凳,3 
    3,椅子,5 
    4,桌子,5 
    5,麻将桌,5 
    所以结果应该是
    1,广东,2 
    4,湖南,3 
      

  12.   

    select aa.id,aa.name,sum(num) from trade aa,
    (select 
    a.id,a.parentid,count(*)num
    from 
    trade a right join product b 
    on 
    a.id=b.tradeid
    where 
    a.parentid<>0
    group by 
    a.id,a.parentid) bb
    where aa.id=bb.parentid and aa.parentid=0
    group by aa.id,aa.name結果
    ----------------------------
    1 广东 2
    4 湖南 3
      

  13.   

    两级就是对的,还差一个prduct.tg=1
    这样就对了,
    俺对复杂的sql查询还是不行 ...
    nb 谢谢
      

  14.   

    共5个产品,广东2个,湖南3个....   不理解这个结果你是怎么得到的 
    -----
    他的trade表是tree结构...
    这个问题难度不大挺费事儿...等有空的来给你写吧...闪...
      

  15.   

    问问题http://topic.csdn.net/u/20080216/16/5eb843eb-75a9-4c4e-9a21-c3fa48c540c8.html