打印本文 打印本文 关闭窗口 关闭窗口
SQL综合应用学习 (转贴)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数6098  更新时间:2007/11/14 10:59:43  文章录入:mintao  责任编辑:mintao
p; and t.学生ID=T0.学生ID and t.课程ID=''''K4''''  
          ) as 政治级别
      ,count(*),avg(t0.成绩)
      ,(SELECT max(class)
          from classes
          where AVG(T0.成绩) >= Classes.MinV
                and AVG(T0.成绩) <= Classes.MaxV
          ) AS 平均级别
from T as T0
group by 学生ID

 SELECT [T].[学生ID],MAX([T].[学生姓名]) AS 学生姓名,MAX([T1].[成绩]) AS 数学,MAX([T2].[成绩]) AS 语文,MAX([T3].[成绩]) AS 英语,MAX([T4].[成绩]) AS 政治, COUNT([T].[课程ID]) AS 有效课程数 ,(ISNULL(MAX([T1].[成绩]),0) + ISNULL(MAX([T2].[成绩]),0) + ISNULL(MAX([T3].[成绩]),0) + ISNULL(MAX([T4].[成绩]),0)) / COUNT([T].[课程ID]) AS 有效平均分
   FROM [T]
            LEFT JOIN [T] AS [T1]
                      ON [T].[学生ID] = [T1].[学生ID] AND [T1].[课程ID] = ''''k1''''
            LEFT JOIN [T] AS [T2]
                      ON [T].[学生ID] = [T2].[学生ID] AND [T2].[课程ID] = ''''k2''''
            LEFT JOIN [T] AS [T3]
                      ON [T].[学生ID] = [T3].[学生ID] AND [T3].[课程ID] = ''''k3''''
            LEFT JOIN [T] AS [T4]
                      ON [T].[学生ID] = [T4].[学生ID] AND [T4].[课程ID] = ''''k4''''
 GROUP BY [T].[学生ID]
 ORDER BY (ISNULL(MAX([T1].[成绩]),0) + ISNULL(MAX([T2].[成绩]),0) + ISNULL(MAX([T3].[成绩]),0) + ISNULL(MAX([T4].[成绩]),0)) / COUNT([T].[课程ID]) DESC

5.列印数学成绩第 10 名到第 15 名的学生成绩单
 或列印平均成绩第 10 名到第 15 名的学生成绩单
 [学生ID],[学生姓名],数学,语文,英语,政治,平均成绩


SELECT DISTINCT
      [T].[学生ID],
      [T].[学生姓名] AS 学生姓名,
      [T1].[成绩] AS 数学,
      [T2].[成绩] AS 语文,
      [T3].[成绩] AS 英语,
      [T4].[成绩] AS 政治,
      ISNULL([T1].[成绩],0) + ISNULL([T2].[成绩],0) + ISNULL([T3].[成绩],0) + ISNULL([T4].[成绩],0) as 总分
FROM [T]
            LEFT JOIN [T] AS [T1]
                      ON [T].[学生ID] = [T1].[学生ID] AND [T1].[课程ID] = ''''k1''''
            LEFT JOIN [T] AS [T2]
                      ON [T].[学生ID] = [T2].[学生ID] AND [T2].[课程ID] = ''''k2''''
            LEFT JOIN [T] AS [T3]
                      ON [T].[学生ID] = [T3].[学生ID] AND [T3].[课程ID] = ''''k3''''
            LEFT JOIN [T] AS [T4]
                      ON [T].[学生ID] = [T4].[学生ID] AND [T4].[课程ID] = ''''k4''''
WHERE ISNULL([T1].[成绩],0) + ISNULL([T2].[成绩],0) + ISNULL([T3].[成绩],0) + ISNULL([T4].[成绩],0)
     NOT IN
     (SELECT
            DISTINCT
            TOP 3 WITH TIES
            ISNULL([T1].[成绩],0) + ISNULL([T2].[成绩],0) + ISNULL([T3].[成绩],0) + ISNULL([T4].[成绩],0)
      FROM [T]
           LEFT JOIN [T] AS [T1]
                     ON [T].[学生ID] = [T1].[学生ID] AND [T1].[课程ID] = ''''k1''''
           LEFT JOIN [T] AS [T2]
                     ON [T].[学生ID] = [T2].[学生ID] AND [T2].[课程ID] = ''''k2''''
           LEFT JOIN [T] AS [T3]
                     ON [T].[学生ID] = [T3].[学生ID] AND [T3].[课程ID] = ''''k3''''
           LEFT JOIN [T] AS [T4]
                     ON [T].[学生ID] = [T4].[学生ID] AND [T4].[课程ID] = ''''k4''''
      ORDER BY ISNULL([T1].[成绩],0) + ISNULL([T2].[成绩],0) + ISNULL([T3].[成绩],0) + ISNULL([T4].[成绩],0) DESC)
     AND ISNULL([T1].[成绩],0) + ISNULL([T2].[成绩],0) + ISNULL([T3].[成绩],0) + ISNULL([T4].[成绩],0)
      IN (SELECT
                DISTINCT
                TOP 4 WITH TIES
                ISNULL([T1].[成绩],0) + ISNULL([T2].[成绩],0) + ISNULL([T3].[成绩],0) + ISNULL([T4].[成绩],0)
          FROM [T]
               LEFT JOIN [T] AS [T1]
                         ON [T].[学生ID] = [T1].[学生ID] AND [T1].[课程ID] = ''''k1''''
               LEFT JOIN [T] AS [T2]
                         ON [T].[学生ID] = [T2].[学生ID] AND [T2].[课程ID] = ''''k2''''
               LEFT JOIN [T] AS [T3]
                         ON [T].[学生ID] = [T3].[学生ID] AND [T3].[课程ID] = ''''k3''''
               LEFT JOIN [T] AS [T4]
                         ON [T].[学生ID] = [T4].[学生ID] AND [T4].[课程ID] = ''''k4''''
          ORDER BY ISNULL([T1].[成绩],0) + ISNULL([T2].[成绩],0) + ISNULL([T3].[成绩],0) + ISNULL([T4].[成绩],0) DESC)
ORDER BY ISNULL([T1].[成绩],0) + ISNULL([T2].[成绩],0) + ISNULL([T3].[成绩],0) + ISNULL([T4].[成绩],0) DESC

6.按各科不及格率的百分数从低到高和平均成绩从高到低顺序,统计并列印各科平均成绩和不及格率的百分数(用"N行"表示): (就是分析哪门课程难)
 课程ID,课

上一页  [1] [2] [3] [4] [5] [6]  下一页

打印本文 打印本文 关闭窗口 关闭窗口