У меня есть несколько таких таблиц:
Lookup_HealthCheckupRisks
------------
ID Name
1 Anemia
2 Anorexic
3 Bulemic
4 Depression
...
122 Syphilis
PatientRisksOnCheckup
------------------
ID CheckupID RiskID
1 11 2
2 11 3
3 12 1
4 14 1
5 14 3
...
Но мне нужна плоская версия, например:
PatientCheckup
------------------
CheckupID Risk_1 Risk_2 Risk_3 Risk_4 .. Risk_122
11 0 1 1 0 0
12 1 0 0 0 0
13 0 0 0 0 0
14 1 0 1 0 0
Я не знаю, как это сделать, лучшее, что я могу придумать, это написать временную таблицу, определить все 122 столбца, а затем выполнить If Exists ( SELECT * FROM PatientRisksOnCheckup where RiskID=i and checkupID=j ) INSERT INTO PatientCheckup (1) WHERE CheckupID=j
и выполнить итерацию по i, j...
> _ <</p>
Написание этого запроса только для одной таблицы выполнимо не лучше, но мне нужно сгладить данные, подобные этим, для еще тридцати таблиц такого же размера. Э-э ... предложения, пожалуйста?
Мне также любопытно узнать, является ли то, что я делаю, обычным делом или нет ...?
Мне нужно денормализовать / сгладить данные sql для программного обеспечения для статистики.