1

学年上位 25 人の学生のストアド プロシージャを作成する方法。SO Proc は、パラメータとして年を取得し、学生 ID、その年のマークの合計を返す必要があります

Alter  PROCEDURE getstudents
(  
@year INT
)
AS
BEGIN
SELECT student-name FROM tbl_Students WHERE year=@year
Thanks 
4

3 に答える 3

2

これを試して、

ALTER  PROCEDURE getstudents

      @year INT

AS
BEGIN

    SELECT TOP 25 [student-name]
    FROM tbl_Students WHERE year=@year

END
于 2013-07-19T10:39:11.017 に答える
2

これを試してみてください -

ALTER PROCEDURE dbo.getstudents

      @year INT

AS
BEGIN

    SELECT TOP 25
            student_name
          , student_id
          , marks = SUM(marks)
    FROM dbo.tbl_Students 
    WHERE [Year] = @year
     GROUP BY 
            student_name
          , student_id
     ORDER BY marks DESC

END

またはこれ -

ALTER PROCEDURE dbo.getstudents

      @year INT
    , @count INT

AS
BEGIN

     SELECT student_name, student_id, marks
     FROM (
         SELECT 
                 student_name
               , student_id
               , marks
               , rn = ROW_NUMBER OVER (ORDER BY marks DESC) 
         FROM (
             SELECT 
                      student_name
                    , student_id
                    , marks = SUM(marks)
             FROM dbo.tbl_Students 
             WHERE [Year] = @year
               GROUP BY 
                      student_name
                    , student_id
         ) t
     ) t2
    WHERE t2.rn <= @count

END
于 2013-07-19T10:34:28.140 に答える
1

正しい方法でパラメーターを渡しました。

ここで、必要な情報について SP 内でクエリを実行する必要があります。

したがって、最後の選択では、抽出した結果が表示されます。

明らかに、ディーラーの学生、学生 i などについて、ここに自分の db モデルを記述します。

于 2013-07-19T10:34:24.167 に答える