我有一個這樣的一堆表:最好的方法來平整/非規範化SQL查找表?
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...
> _ <
寫此查詢只是一個表是可行的不是最好的,但我需要扁平化數據LI再用30張相同大小的桌子。呃...建議嗎?
我也很好奇,想知道我正在做的事情是否是常見的事情?
我需要非規格化/扁平化統計軟件的sql數據。
請描述您正在使用的數據庫。 – RedFilter 2009-09-22 17:40:03
+1感謝您在Stackoverflow上成爲理智的人 – 2010-01-26 16:59:05