2012-04-15 2 views
3

Я создаю этот мобильный портал/приложение, используя (ASP + WML), мне нужно было сгенерировать список курсов, сделанных студентом в определенном семестре в течение определенного года.Получение данных из базы данных из разных таблиц

У меня есть следующие таблицы:

enter image description here

меня с предыдущей страницы следующие параметры:

string StudentId = Request.Params["StudentId"]; 
string Year = Request.Params["Year"]; 
string Semester = Request.Params["Semester"]; 
  • значений (Year) либо "2011" или "2012".
  • значения (Semester) являются либо «первым», либо «вторым» или «летним».
  • Значения (StudentId) - это номер, выделенный до идентификатора в таблице «Студенты».

В качестве примера данных внутри таблиц.

enter image description here

Я застрял здесь

string connectionString = @"Data Source=.\SQLEXPRESS;AttachDbFileName=|DataDirectory|\Uni.MDF;" + 
      "Integrated Security=True;User Instance=True"; 
      string queryString =" ??????????????????????????? " ; 

Я хочу, чтобы получить страницу, чтобы показать курсы, что пользователь зарегистрирован в (в данном семестре). Информация позже будет передана по URL-адресу на новую страницу, на которой будет отображаться информация.

Что-то вроде:

First Semester 2010 
Student : Arin Rizk 

Course Name  No. of Credit  Mark 
    AAA    3   65 
    BBB    3   23 
    CCC    3   65 
    DDD    3   58 
    EEE    3   70 

Your GPA for this semster is 3.12 

Редактировать

как я буду печатать информацию на странице позже?

Как я могу это сделать? Я попытался создать представление, но я не знаю, почему он не работает.

Я не могу изменить таблицы или структуру БД.

Заранее спасибо.

+0

Пожалуйста, не удаляйте все содержимое этого вопроса, чтобы удалить его. –

ответ

3
select st.firstname + ' ' + st.lastname,se.year, c.coursename,c.credits,ri.mark 
from students st 
inner join RegisteredIn ri on ri.studentid=st.id 
inner join semester se on se.id=ri.semesterid 
inner join Courses c on c.id=se.courseid 

этот запрос даст вам имя, год, coursename, кредиты и знаки.

Вам нужно написать еще один запрос для расчета gpa или вы можете рассчитать на своем веб-сервере данные, полученные выше.

0

Для списка, конечно, вы можете сделать:

Select Courses.CourseName, Courses.NumberOfCredits, RegisteredIn.Mark 
From dbo.Courses Inner Join dbo.RegisteredIn On Courses.id = RegisteredIn.CourseID 
    Inner Join dbo.Semester On RegisteredIn.SemesterID = Semester.id 
Where RegisteredIn.StudentID = '20111' AND 
    Semester.Title = 'First' AND 
    Semester.Year = 2011 
Order By Courses.CourseName