select * from 表 tem where 价值 in (select top 3 价值 from 表 where 企业名称=tem.企业名称 order by 价值 desc)

解决方案 »

  1.   

    楼上的
    同企业的同类原料要求和的,
    还有tem是什么,
    可不可以详细一点?
      

  2.   

    select 企业名称,进口原料种类 from 表 tem group by 企业名称,进口原料种类 having sum(价值) in (select top 3 sum(价值) from 表 where 企业名称=tem.企业名称 group by 进口原料种类 order by sum(价值) desc)
      

  3.   

    是把表名另取名为tem ,
    select 企业名称  ,  进口原料种类  ,  top 3 sum(价值) as 价值 from 表 group by 进口原料种类  ,企业名称 order by 价值
      

  4.   

    order by 价值 后加 desc
      

  5.   

    declare @表 table (企业名称 varchar(10),进口原料种类 varchar(10),价值 int)
    insert @表 values('a','class1',100)
    insert @表 values('a','class2',200)
    insert @表 values('a','class1',1000)
    insert @表 values('a','class2', 146)
    insert @表 values('a','class3',10000)
    insert @表 values('b','class1',1000)
    insert @表 values('b','class3', 100)
    insert @表 values('b','class3',135)
    insert @表 values('c','class3',444)
    insert @表 values('c','class3',3000)
    insert @表 values('c','class4',364)
    select 企业名称,进口原料种类,sum(价值) 结果 from @表 tem group by 企业名称,进口原料种类 having sum(价值) in (select top 3 sum(价值) from @表 where 企业名称=tem.企业名称 group by 进口原料种类 order by sum(价值) desc) order by 企业名称,sum(价值) desc---tem是别名
      

  6.   

    和和:
    tem是你的表名,就是select的from中的子句带的表的别名。使用起来就象直接使用表名一样,但方便而且遇到多次对该表进行操作的时候更是必须的。select * from 表 a where 价值 in (select top 3 价值 from (Select 企业名称,进口原料种类,Sum(价值) as 价值 from 表 group by 企业名称,进口原料种类) b where b.企业名称=a.企业名称 order by b.价值 desc)
      

  7.   

    Select 企业名称,进口原料种类,Sum(价值) 价值 Into #T
        From YourTable 
        Group By 企业名称,进口原料种类
        Order By 企业名称,进口原料种类,价值 DESC
    Select RowID = Identity(int,0,1),企业名称,进口原料种类,价值 Into #T1 
        From #T
    Select 企业名称,GrpCnt = Count(*),GrpMinRowID = Min(RowID) Into #T2 
        From #T1
        Group By 企业名称 
    Select #T1.企业名称,#T1.进口原料种类,#T1.价值 From #T1 Inner Join #T2 
        On #T1.企业名称 = #T2.企业名称
        Where (#T1.RowID - #T2.GrpMinRowID)%GrpCnt < 3
    Drop Table #T,#T1,#T2
      

  8.   

    select 企业名称,进口原料种类,sum(价值) 结果 
    from @表 as tem 
    group by 企业名称,进口原料种类
    having sum(价值) in (select top 3 sum(价值) 
                         from @表 
                         where 企业名称=tem.企业名称 and 进口原料种类=tem.进口原料种类 
                         group by 企业名称,进口原料种类 
                         order by sum(价值) desc )
    order by 企业名称,进口原料种类
      

  9.   

    以上方法我都试过了,怎么不行啊
    我需要的是每一家企业的进口原料的前三名
    求出来的结果却不是这样
    假如表名是temp
    我写的是
    select ownername,g_name,sum(trade_total) 结果 
    from #temp as tem 
    group by ownername,g_name
    having sum(trade_total) in (select top 3 sum(trade_total) 
                         from #temp
                         where ownername=tem.ownername and g_name=tem.g_name 
                         group by ownername,g_name 
                         order by sum(trade_total) desc )
    order by ownername,g_name还是我理解错了?
    谢谢
      

  10.   

    select 企业名称, 进口原料种类, sum(价值) 价值 into #t from table1 group by 企业名称, 进口原料种类
    goselect * from #t A where 价值 in 
    (select top 3 价值 from #t where 企业名称=A.企业名称 order by 价值 desc)
    order by 企业名称, 价值 desc
      

  11.   

    select * from 
     (select 企业名称, 进口原料种类, sum(价值) 价值 
        from table1 group by 企业名称, 进口原料种类) A where 价值 in 
    (select top 3 价值 from 
     (select 企业名称, 进口原料种类, sum(价值) 价值 
        from table1 group by 企业名称, 进口原料种类) where 企业名称=A.企业名称 order by 价值 desc)
    order by 企业名称, 价值 desc
      

  12.   

    这个问题有点意思。刚刚建了一个表,不过数据和题目的略有不同为了检验一下适应性,
    我在企业c做了5条价值一样,但产品类型不一样的数据凡是用“having sum(价值) in ”这样的方法做的,得出来的C企业的数据都会是多过三条 triout(笨牛)的方法也是错的 rdsdh(方人也)做得倒是对的:),不过好象略有点麻烦,还要用到临时表,不知道还有没有更好的办法
      

  13.   

    我试过了,tj_dns(愉快的登山者) 是对的,不过要改一个小地方。select * from 
     (select 企业名称, 进口原料种类, sum(价值) 价值 
        from table1 group by 企业名称, 进口原料种类) A where 价值 in 
    (select top 3 价值 from 
     (select 企业名称, 进口原料种类, sum(价值) 价值 
        from table1 group by 企业名称, 进口原料种类) B where 企业名称=A.企业名称 order by 价值 desc)
    order by 企业名称, 价值 desc
      

  14.   

    select * from 
     (select 企业名称, 进口原料种类, sum(价值) 价值 
        from table1 group by 企业名称, 进口原料种类) A where 价值 in 
    (select top 3 价值 from 
     (select 企业名称, 进口原料种类, sum(价值) 价值 
        from table1 group by 企业名称, 进口原料种类) B where 企业名称=A.企业名称 order by 价值 desc)
    order by 企业名称, 价值 desc
      

  15.   

    select top *3 from 表 where 企业名称=a and 企业名称=b and 企业名称=c