2015-04-30 3 views
0

У меня есть набор таблицы данных выглядит следующим образом:Включите столбцы в строки SQL

[id],[testid],[date],[type],[score1],[score2],[score3],[score4] 

Мне нужно, чтобы это выглядело как этот

[id],[testid][date],[type],[score],[scorecode] (score1) 
[id],[testid][date],[type],[score],[scorecode] (score2) 
[id],[testid][date],[type],[score],[scorecode] (score3) 
[id],[testid][date],[type],[score],[scorecode] (score4) 

The scorecode зависит от которых оценка (1-4), поэтому для строки score1 потребуется scorecode ACTMATH, для score2 потребуется другой scorecode.

Когда я построил это, я использовал UNION ALL. Тем не менее, я просто хочу убедиться, что нет более эффективного способа завершить это.

ответ

1

Вы должны вспыхнуть баллы в свои собственные table

Что он имеет ScoreCode и партитуру и ссылку на идентификатор теста

И тогда вы сделаете запрос SQL Join и сможете легко получить результаты в этом формате.

Тесты [TestID], [дата], [тип]
результаты [ScoreId], [TestID], [оценка], [scorecode]

SELECT * 
FROM Tests T 
JOIN Scores S 
ON T.Testid = S.TestId 
Смежные вопросы