Even with accepted answer it is make sense to mention that probably the right thing to do is to use separate queries, as they are and just use MARS on the client, in case performance was an issue.
UPDATE: Thats how you can combine several queries and read them all together:
using(var conn = SqlConnection(...)) {
conn.Open();
var cmd = conn.CreateCommand()
cmd.CommandText =
@"Select SUM(MarksObtained) as MarksObtained
from tbAnswers
where QID IN(Select QID from tbQuestions where ExamID =2);"
+ @"Select SUM(Marks) as MaxMarks
from tbQuestions
where ExamID =2";
using (var dr = cmd.ExecuteReader) {
... // read MarksObtained
dr.NextResult()
... // readMaxMarks
dr.Close()
}
conn.Close()
}
MSDN IDataReader.NextResult