savedlema Ответов: 0

Найти сумму некоторых элементов из двух таблиц mysql


Привет!

Итак, у меня есть две таблицы, exam1 и exam2, которые выглядят следующим образом:

table:exam1

sid       physics     chemistry       biology
3          80             60            40


   table:exam2
sid        physics    chemistry       biology
3            40          50              70


[b]проблема:[/b]
Я хочу найти сумму элементов из обеих таблиц (exam1 и exam2), например

table: total
sid         physics         chemistry       biology
3            120               110            110


[b]но: [/b]
Мне не всегда нужно находить сумму всех курсов (физика, химия, биология), иногда мне может понадобиться найти сумму только двух, одного из всех трех предметов, так что это действительно переменная.

Так как я программирую от VB.NET, список курсов, подлежащих суммированию, может быть задан пользователем во время выполнения и хранится в переменной, скажем, "курсы", поэтому иногда курсы= (физика,химия,биология), иногда курсы=(физика, химия) и так далее.

Как тогда я могу найти общее количество курсов, которые выбирает пользователь? (по-прежнему общее количество курсов в таблицах exam1+exam2)

Спасибо

Что я уже пробовал:

<pre lang="vb">
Dim courses As String = "physics,chemistry"

        Dim cmd As New MySqlCommand
        cmd.CommandText = "Select A.sid, (A." & LCase((courses)) & "+B." & LCase((courses)) &
                            ") As " & courses & " From exam1 A Inner Join exam2 B On A.sid=B.sid Order By A.sid"

        MsgBox("STATEMENT = " & cmd.CommandText)
        cmd.Connection = con
        Dim rd As MySqlDataReader = cmd.ExecuteReader()


        If rd.HasRows() Then
            Dim x As String
            Do While rd.Read()
                x &= String.Format("{0}  {1}", rd("sid"), rd(ComboBox2.SelectedItem)) & vbCrLf
            Loop
            MessageBox.Show(x)
        End If
        rd.Close()
        cmd.Dispose()
        con.Dispose()

0 Ответов