共五条SQL语句, 
是查 第一项(catscore),分数(catscore)为1的投票数,
select count(*) total from trainingMarkRecord where trainingid=603 and catscore='1' and catid='01' and role='1' and userID in (119,137,112) group by catid
是查 第一项(catscore),分数(catscore)为2的投票数,
select count(*) total from trainingMarkRecord where trainingid=603 and catscore='2' and catid='01' and role='1' and userID in (119,137,112) group by catid
是查 第一项(catscore),分数(catscore)为3的投票数,
select count(*) total from trainingMarkRecord where trainingid=603 and catscore='3' and catid='01' and role='1' and userID in (119,137,112) group by catid
是查 第一项(catscore),分数(catscore)为4的投票数,
select count(*) total from trainingMarkRecord where trainingid=603 and catscore='4' and catid='01' and role='1' and userID in (119,137,112) group by catid
是查 第一项(catscore),分数(catscore)为5的投票数,
select count(*) total from trainingMarkRecord where trainingid=603 and catscore='5' and catid='01' and role='1' and userID in (119,137,112) group by catid
怎么把这五条SQL语句合并成一条SQL语句?

解决方案 »

  1.   

    SELECT 
    SUM(DECODE(catscore,'1',1,0)) AS 分数 为1的投票数,
    SUM(DECODE(catscore,'2',1,0)) AS 分数 为2的投票数,
    SUM(DECODE(catscore,'3',1,0)) AS 分数 为3的投票数,
    SUM(DECODE(catscore,'4',1,0)) AS 分数 为4的投票数,
    SUM(DECODE(catscore,'5',1,0)) AS 分数 为5的投票数
    FROM trainingMarkRecord
    WHERE   trainingid=60
    AND catid='01' and role='1' and userID in (119,137,112)
    group by catid 
      

  2.   

    如果是十条SQL语句, 还能不能合并呢?
    是查 第一项(catscore),分数(catscore)为1的投票数,
    select count(*) total from trainingMarkRecord where trainingid=603 and catscore='1' and catid='01' and role='1' and userID in (119,137,112) group by catid
    是查 第一项(catscore),分数(catscore)为2的投票数,
    select count(*) total from trainingMarkRecord where trainingid=603 and catscore='2' and catid='01' and role='1' and userID in (119,137,112) group by catid
    是查 第一项(catscore),分数(catscore)为3的投票数,
    select count(*) total from trainingMarkRecord where trainingid=603 and catscore='3' and catid='01' and role='1' and userID in (119,137,112) group by catid
    是查 第一项(catscore),分数(catscore)为4的投票数,
    select count(*) total from trainingMarkRecord where trainingid=603 and catscore='4' and catid='01' and role='1' and userID in (119,137,112) group by catid
    是查 第一项(catscore),分数(catscore)为5的投票数,
    select count(*) total from trainingMarkRecord where trainingid=603 and catscore='5' and catid='01' and role='1' and userID in (119,137,112) group by catid是查 第二项(catscore),分数(catscore)为1的投票数,
    select count(*) total from trainingMarkRecord where trainingid=604 and catscore='1' and catid='02' and role='1' and userID in (177) group by catid
    是查 第二项(catscore),分数(catscore)为2的投票数,
    select count(*) total from trainingMarkRecord where trainingid=604 and catscore='2' and catid='02' and role='1' and userID in (177) group by catid
    是查 第二项(catscore),分数(catscore)为3的投票数,
    select count(*) total from trainingMarkRecord where trainingid=604 and catscore='3' and catid='02' and role='1' and userID in (177) group by catid
    是查 第二项(catscore),分数(catscore)为4的投票数,
    select count(*) total from trainingMarkRecord where trainingid=604 and catscore='4' and catid='02' and role='1' and userID in (177) group by catid
    是查 第二项(catscore),分数(catscore)为5的投票数,
    select count(*) total from trainingMarkRecord where trainingid=604 and catscore='5' and catid='02' and role='1' and userID in (177) group by catid怎么把这五条SQL语句合并成一条SQL语句? 
      

  3.   

    SELECT trainingid,catid, 
    SUM(DECODE(catscore,'1',1,0)) AS score1,
    SUM(DECODE(catscore,'2',1,0)) AS score2,
    SUM(DECODE(catscore,'3',1,0)) AS score3,
    SUM(DECODE(catscore,'4',1,0)) AS score4,
    SUM(DECODE(catscore,'5',1,0)) AS score5
    FROM trainingMarkRecord
    WHERE   trainingid=60
    AND catid='01' and role='1' and userID in (xx,xx,xx...)
    group by trainingid,catid 
      

  4.   

    用case when ,再结合Group by 就可以解决
      

  5.   

    select count(1) from trainingMarkRecord where trainingid=603 and catscore in ('1','2','3','4','5') and catid='01' and role='1' and userID in (119,137,112) group by catscore
      

  6.   

    顶这个,你后来10的那个,可以按这前5个来写成一个然后和前5个的查询union一下就可以了。