1

コード (つまり 8202-6) を含むテーブルがあり、別の列に結果の値があります。「Case When」関数を使用して、コードを 1 つの列から取り出し、コード番号に基づいて別の列に配置しました。ただし、今では、行に一連の null 値があり、1 つのコードに 1 つの結果が含まれています。実際のコードを対応する値 (つまり、8206-6 = 高さ、結果 75) に置き換えたいと思います。したがって、Height 列には、Height 値 75 の代わりに LOINC コードが表示されます。使用する正しいコードを見つけるのを手伝ってくれる人はいますか。以下は、列を分離するためだけに使用しているコードの例です。

Select Distinct

p.PatientID,
Convert(varchar, fs.obsdate, 101) as Date_of_Service,
p.LASTNAME,
p.FIRSTNAME,
CONVERT(varchar, "p"."DATEOFBIRTH", 101) as DOB,
Case When fs.loinccode='8302-2' Then fs.loinccode end as Height,
Case When fs.loinccode='3141-9' Then fs.loinccode end as Weight,
Case When fs.loinccode='8310-5' Then fs.loinccode end as Temperature,
Case When fs.loinccode='8287-5' Then fs.loinccode end as HeadCircumf,
Case When fs.loinccode='8867-4' Then fs.loinccode end as Pulse,
Case When fs.loinccode='9279-1' Then fs.loinccode end as Respiration,
Case When fs.loinccode='8480-6' Then fs.loinccode end as BPSystolic,
Case When fs.loinccode='8462-4' Then fs.loinccode end as BPDiastolic,
fs.obsvalue as Test_Results,
fs.units as Test_Units

From

PERSON as p 
Left Outer join flowsheet_observation fs on fs.pid=p.pid 

結果:

Height  Weight  Temperature HeadCircumf Pulse   Respiration BPSystolic  BPDiastolic Test_Results    Test_Units
NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    + history of lef tshoulder dislocation 10 years ago    Current Meds:        NULL
NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    never   NULL
NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    regular NULL
NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    tympanic    NULL
NULL    NULL    NULL    NULL    NULL    NULL    NULL    8462-4  100 mm Hg
NULL    NULL    NULL    NULL    NULL    NULL    8480-6  NULL    140 mm Hg
NULL    NULL    NULL    NULL    8867-4  NULL    NULL    NULL    82  /min
NULL    NULL    8310-5  NULL    NULL    NULL    NULL    NULL    99.1    deg F
NULL    3141-9  NULL    NULL    NULL    NULL    NULL    NULL    283 lb
8302-2  NULL    NULL    NULL    NULL    NULL    NULL    NULL    72.5    in
NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    37.72   NULL
NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    regular NULL
NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    tympanic    NULL
NULL    NULL    NULL    NULL    NULL    NULL    NULL    8462-4  100 mm Hg
NULL    NULL    NULL    NULL    NULL    NULL    8480-6  NULL    142 mm Hg
NULL    NULL    NULL    NULL    8867-4  NULL    NULL    NULL    86  /min
NULL    NULL    8310-5  NULL    NULL    NULL    NULL    NULL    99.4    deg F
NULL    3141-9  NULL    NULL    NULL    NULL    NULL    NULL    281 lb

これについての助けをいただければ幸いです。

4

2 に答える 2

0

MAX(CASE WHEN THEN END) を使用して、他のフィールドでグループ化してみてください

于 2013-04-14T01:13:18.450 に答える
0

コードとその意味を関連付けるテーブル code_names を作成する必要があります。

code   | label
8302-2 | Height
3141-9 | Weight
...

それから flowsheet_observation を結合し、コードの代わりにラベルを選択します。これらすべてのケースは必要ありません。

編集:コードのテーブルを作成することがオプションでない場合、コードの関係はユニオンで作成できます:

SELECT '8302-2' AS コード、'Height' AS ラベル UNION SELECT '3141-9' AS コード、'Weight' AS ラベル UNION ...

于 2013-04-13T21:04:14.993 に答える