1

という名前のテーブルが 1 つありますtask_assignment
次の 6 つのフィールドがあります。

testId,quesId,evaluatorId,studId and marks

実際には、このテーブルは、各学生の各評価者のマークを含む各テストのマークを質問 ID ごとに保存するために使用されます。

入力として、testId=1、quesId=Q1、studId=S1 があります。したがって、選択クエリで次の情報を取得したいと思います。つまりBoth evaluators(E1,E2)、指定された入力のマークです。

SQLクエリは、これに対して複数の行を書き込みません...クエリの出力は、単一の行で:20,15です。

この問題から抜け出すために私を導いてください...

ここに画像の説明を入力

4

1 に答える 1

3

20, 15基準を満たすレコードは 1 つしかないため、目的の出力を得ることができないと思いますtestId = 1, quesId = Q1, studId = S1

しかし、あなたの質問に答えるために、ここに私の質問があります:

SELECT GROUP_CONCAT(marks)
    FROM task_assignment
    WHERE testId = 1
        AND quesId = 'Q1'
        AND studId = 'S1';

SQL Fiddleで試しました。

編集1

コード内のクエリの出力を解析しC#て別の変数に格納する場合は、次のSplit関数を使用できます。

string marks = "20, 15"; //Suppose that this value came from database

int mark1 = Convert.ToInt32(marks.Split(',')[0]);
int mark2 = Convert.ToInt32(marks.Split(',')[1]);

変数の値によっては、コードは依然としてエラーを起こしやすいmarksので、値を検証したことを確認してください。

これは質問とは無関係かもしれませんが、それでもあなたの仕事を助けるために、それが私の答えです。

于 2013-01-07T07:48:57.823 に答える