有这样一个表:
项目编号       投资额      得分
1              500      8
2              600      9
3              700      7
4              800      6
我要查询:投资总额<1500,得分多的项目如投资总额<800 ,得到一个项目(项目2)
如投资总额<1200 ,得到2个项目(项目2、项目1)请问该SQL语句如何写啊,Sql Server数据库

解决方案 »

  1.   

    select max(a.得分) from a
    where a.投资额 <1500
      

  2.   

    SELECT TOP 1 项目编号 FROM TABLE WHERE 投资额 < 1500 ORDER BY 得分 DESC
      

  3.   

    谢谢回复,不过大家可能都没看清楚,是要求投资总额小于规定的值sum(投资额)<1500,得分靠前的记录
      

  4.   

    sum(投资金额)< 1500 什么意思,不明白 那得分也sum吗?
      

  5.   

    是这样,我要根据得分来选择项目,但是要控制所选项目的投资总额小于规定的值,,sum(投资金额)<1500的意思就是选择的项目投资总额小于1500,
      

  6.   


    SELECT TOP 1 FROM 表名 WHERE 投资额 < (select max(投资额) from 表名) ORDER BY 得分 DESC
      

  7.   

    select a.* from 
    (
    select 项目编号,sum(投资额) as 投资额,sum(分数) as 分数
    from tableA
    group by 项目编号
    ) a
    where a.投资额 < 你要的金额
    and   rownum < 2
    order by 分数 desc
    //这是oracle的