Это, в основном, вопрос о соединении с базой данных, но для этого требуется использовать компонент сопоставления столбцов-столбцов и столбцов.sql join function
У меня есть несколько обзорных столов; для простоты, допустим, у меня есть два, один с 2010 года (называемый «d2010»), а другой - с 2011 года (называемый «d2011»). Строки соответствуют опросам, а столбцы (которые мы можем считать названными «c1», «c2», «c3», ... «cN») соответствуют ответам на вопросы. Так, «D2010» выглядит как
id c1 c2 c3 .. cX
survey 1
survey 2
survey 3
...
survey N
в то время как «D2011» выглядит как
id c1 c2 c3 .. cY
survey 1
survey 2
survey 3
...
survey N
Основная цель состоит в том, чтобы показать, как ответы изменились с 2010 по 2011 год, для конкретного вопроса. В частности, моя цель состоит в том, чтобы создавать команды SQL, которые создают новые таблицы (с тремя столбцами), которая показывает, для конкретного ответа, как опросы отличаются между двумя годами:
id 2010-response 2011-response
survey 1
survey 2
survey 3
...
survey N
Если имена столбцов были храниться в соответствии , то, что я должен был бы быть что-то же просто, как
select d2011.id, d2010.c1 as 'last year', d2011.c1 'this year' from d2010 join d2011 on d2010.id=d2011.id;
к сожалению, люди, которые создавали таблицы не держат имена столбцов в соответствии; например,
c1 of 2010 corresponds to c2 of 2011
c2 of 2010 corresponds to c1 of 2011
c3 of 2010 corresponds to c3 of 2011
c4 of 2010 corresponds to c7 of 2011
...
Так что я пытался сделать, это ввести что-то вроде
select d2010.id, d2010.c1 as 'last year', d2011.f(c1) 'this year' from d2010 join d2011 on d2010.id=d2011.id;
где «d2011.f (c1)» указывает на использование функции, которая отображает столбец имена 2010 до тех 2011. отображение не достаточно просто быть выражен с помощью математической формулы, так что я полагаю, мне нужна таблица, которая идет что-то вроде
2010 2011
c1 c2
c2 c1
c3 c3
c4 c7
есть ли способ, чтобы выразить в SQL Соединить РАБОТУ Мне нужно? То есть, с таблицей карт, есть ли способ преобразовать следующее в стандартный SQL (в общем) и SQLite (в частности)?
select d2011.id, f(d2010.c1) as 'last year', d2011.c1 'this year' from d2010 join d2011 on d2010.id=d2011.id;.id;
Большое спасибо!