0

私は、すべての学生が10のコースを受講しなければならないという表を持っています.5つは必須であり、他の5つから3つを選択します.したがって、基本的に2つのグループがあります. ここで、合計クレジットの合計とグループ クレジットの合計を計算する必要があります。


表1

      StudentID ProgID ProgName GroupID  GroupName  Course Complete_Courses_Alert Credits
          1         100  MS       501      Mandatory  12       Remaining           3  
          1         100  MS       501      Mandatory  13       Complete            3
          1         100  MS       501      Mandatory  14       Complete            3
          1         100  MS       501      Mandatory  15       Remaining           3
          1         100  MS       501      Mandatory  16       Complete            3
          1         100  MS       502      Elective   17       Complete            3
          1         100  MS       502      Elective   18       Complete            3
          1         100  MS       502      Elective   19       Remaining           3
          1         100  MS       502      Elective   20       Complete            3
          1         100  MS       502      Elective   21       Remaining           3

次のように出力したい

上のテーブルですが、さらに 2 つのフィールドが追加されています。

つまり、完了クレジットの合計 (合計クレジット) と合計完了クレジット (グループ別)

これは私がこれまで行ってきたことです。合計クレジットと GrouptotalCredits を計算するためのビューを作成し、それをメイン クエリに結合しました。このように、クエリでさらに関数を実行するには、別のビューを作成する必要があります..

誰でも助けることができます。

4

1 に答える 1

1

次のようなものを探していると思います:

select *
  , StudentGroupCredits = sum(case when Complete_Courses_Alert = 'Complete' then Credits else 0 end) over (partition by StudentId, GroupName)
  , StudentTotalCredits = sum(case when Complete_Courses_Alert = 'Complete' then Credits else 0 end) over (partition by StudentId)
from Courses

demo を使用した SQL Fiddle

詳細については、Books Online のOVER 句を参照してください。

于 2013-07-15T16:43:35.233 に答える