Я никогда не писал раньше, такSQL - Создание нескольких столбцов на основе значения
- SQL послушника
- Я надеюсь, что форматирование выходит правильно
Я пытался найти способ что я могу манипулировать этими данными, но мне еще нужно найти то, что, на мой взгляд, отвечает моим потребностям. Мне нужно создать дополнительные столбцы на основе значения другого столбца (в моем случае, основываясь на колонке Смотровой)
PID | Observation_Date | Observation_Time | Obs_Value | Observation
1424285941000610 | 20050603 | 115459 | 110 mm Hg |BP Systolic
1424285941000610 | 20050603 | 115459 | 80 mm Hg |BP Diastolic
1424285941000610 | 20050603 | 115459 | N |Smoking Status
1424285941000610 | 20050912 | 141308 | 110 mm Hg |BP Systolic
1424285941000610 | 20050912 | 141308 | 86 mm Hg |BP Diastolic
1424285941000610 | 20051027 | 104202 | 195 lb |Weight
1424285941000610 | 20051027 | 104202 | 104 mm Hg |BP Systolic
1424285941000610 | 20051027 | 104202 | 70 mm Hg |BP Diastolic
1424285941000610 | 20060629 | 092852 | 61.5 in |Height
1424285941000610 | 20060629 | 092852 | 209 lb |Weight
мне удалось разбить его, как я хотел бы с помощью нескольких операторов случае, но я получаю что-то который выглядит следующим образом:
PID Obs_Date |Obs_Time |smoking status |bp_dia |bp_sys |Height |Weight
1424285963050610 |20121203 |161415 |NULL |NULL |NULL |180lb
1424285963050610 |20121203 |161415 |NULL |NULL |70in |NULL
1424285963050610 |20121203 |161415 |NULL |138mm Hg |NULL |NULL
1424285963050610 |20121203 |161415 |80mm Hg |NULL |NULL |NULL
Какой будет технически работать для того, что мне это нужно, но я его не знаю, правильно, так что я надеюсь, что я могу заставить его выглядеть, как показано ниже, где строки объединяются на основе наблюдений дата
В идеале это будет l ООК что-то вроде этого:
PID |Obs_Date |Obs_Time |smoking status |bp_dia |bp_sys |Height |Weight
1424285963050610 |20121203 |161415 |N |80 mmHg |110 mmHg |null |null
Я также попытался с помощью вложенных заменить, но я в конечном итоге с той же проблемой, что это все в одном столбце.
Я использую SQL server 2008
. Любая помощь приветствуется.
показать запрос, который вы используете, чтобы получить результат промежуточного интервала. Вероятно, вам просто нужны некоторые MIN или такие, чтобы группировать строки в одну строку. – Ditto
'CASE WHEN obshead.name = 'bp diastolic' THEN obs.value + obshead. unit end как 'bp_dia' , CASE WHEN obshead.name = 'bp systolic' THEN obs.value + obshead. конец блока как «bp_sys» ... – Josh
, так что вы можете попробовать: min (CASE WHEN obshead.name = 'bp diastolic' THEN obs.value + obhead. unit end) как 'bp_dia', min (CASE WHEN obshead.name = 'bp systolic' THEN obs.value + obhead. unit end) как 'bp_sys' ?? – Ditto