0

私は3つの結果セットを持っています-

@ユーザーID -

 UserID
   1
   2

@crsID -

 CurriculumID
    1
    2

@結果

UserID  CurriculumID FailOrPass
  1          1       1
  2          1       0
  1          2       0
  2          2       0

2 人のユーザーと 2 つのカリキュラムがあり、1 は合格を意味し、0 は不合格 (FailOrPass) を意味します。合格したユーザーと不合格になったユーザーの数が必要です。ユーザーが合格するには、各カリキュラムに合格する必要があります。そうでない場合、ユーザーは不合格になります。上記の例では、出力は次のようになります -

UserID    FailOrPass
  1           0
  2           0

すべてのカリキュラムに合格するユーザーはいないためです。

@crsIDs で @result テーブルをグループ化するのが難しくなっています。さらに全体的な FailOrPass を計算するには、@crsIDs と @userIDs で @result テーブルでグループ化し、FailOrPass の最小値を取得することを考えています。

4

2 に答える 2

0

@result テーブルに移動して、次を使用できます。

 select userId, min(FailOrPass) as FailOrPass
 from @result
 group by userId

min()いずれかの値が 0 の場合、関数は 0 を返します。

于 2013-02-06T03:46:39.160 に答える
0
SELECT UserID, FailOrPass = MIN(FailOrPass)
FROM @Result
GROUP BY UserID

期待される出力を返す必要があります。

于 2013-02-06T03:47:13.357 に答える