Create procedure staticByUser @username varchar(20),@flag varchar(10)
as
//1.总分
   if @flag='zengfen'
   select sum(INT) from a
//2....
//3...

解决方案 »

  1.   

    select  M.name,N.int as answerInt,O.int as questionInt,
    P.answerCount,Q.answerokCount,R.answerokRate,
    S.questionCount,T.questionokCount,U.questioningCount  
    from (
    select name,int from a where name='@name') M
    left join (
    select sum(int) as int,name from(
    select answerTB.name,questionTB.int from c as answerTB,b as questionTB where answerTB.questionid=questionTB.id
    ) group by name 
    ) N on M.name=N.name
    left join (
    select name,sum(int) as int where isok='1' group by name
    ) O on M.name = O.name
    left join (
    select count(1) as answerCount,name from c group by name
    ) P on M.name=P.name
    left join(
    select select count(1) as answerokCount,name from c where questionid in (select id from b where isok='1') group by name
    ) Q on M.name=Q.name
    left join(
    select (a.answerokCount*100)/b.answerokCount as answerokRate,name from (select count(1) as answerokCount,name from c where questionid in (select id from b where isok='1') group by name) a ,(select count(1) as answerokCount,name from c) b
    ) R on M.name=R.name
    left join (
    select count(1) as questionCount,name from b group by name
    ) S on M.name=S.name
    left join (
    select count(1) as questionokCount,name from b where isok='1' group by name 
    ) T on M.name=T.name
    left join (
    select count(1) as questioningCount,name from b where isok='0' group by name 
    ) U on M.name=U.name