日期:2014-05-18  浏览次数:20371 次

求一条SQL句子:
有这么一个表: 
  id name sex grade
  1 aa 1 69
  2 aa2 2 69
  3 aa3 2 50
  4 aa4 1 89
  5 aa5 2 77
  6 aa6 1 75
  7 aa7 1 50

等等这样的数据,数据量特别大,现在想统计这样的数据: (sex 表示性别: 1,男;2 女)

  列出男的分数(grade)>=60,女的(grade)>=50 的人员名单,看有好的建议没?

------解决方案--------------------
SQL code
create Proc Proc_GetName
    @BoyPoint int,
    @GirlPoint int
as
begin transaction
    Declare @sql varchar(1024)
    set @sql='elect name as 名单 where 1=1 '

    if(@BoyPoint is not null)
    begin
        set @sql=@sql+'and sex=1 and grade>='+@BoyPoint
    end
    if(@GirlPoint is not null)
    begin
        set @sql=@sql='and sex=2 and grade>='+@GirlPoint
    end
exec(@sql)

if @@error <>0
begin
    rollback transaction
end
else
begin
    commit transaction
end