从一数据表中取得统计信息的值,大家帮忙看看如何写这个SQL啊。
如从下表TABLE1中取得统计值:
课程编号    课程名称   校区
------------------------------
00001       计算机      北院
00001       计算机      北院
00001       计算机      南院
00001       计算机      南院
00001       计算机      洛南
00001       计算机      洛南
想得到如下表TABLE2的统计结果:
课程编号    课程名称   次数   北院   南院  洛南
-----------------------------------------------
00001        计算机     6       2     2     2
请问大家这个SQL该如何写??
现在只有select 课程编号,课程名称,count(课程编号)as 次数 from table1 group by 课程编号,课程名称得出前三列的结果,但对于后面分校区该怎么写才能产生如table2??
3Q

解决方案 »

  1.   

    用交叉表:
    给个静态交叉表的示例:
    SELECT 课程编号,课程名称,count(课程编号)as 次数, 
      count(CASE 校区 WHEN '北院' THEN '' ELSE NULL END) AS [北院], 
     count(CASE 校区 WHEN '南院' THEN '' ELSE NULL END) AS [南院], 
     count(CASE 校区 WHEN '洛南' THEN '' ELSE NULL END) AS [洛南]
    FROM table1 GROUP BY 课程编号,课程名称
      

  2.   

    huobr(两颗牙齿)的回答不实用,如果校区不确定,用你的方法是不行的.在编程过程中,如果要实现楼主的要求,应该用到游标,才能解决问题.