0

SQLServerデータベースの医療処置を対応する結果と照合する必要があるプロジェクトがあります。例:手順ノートにはが含まれscreening、結果ノートは。を含むその手順から1週間以内に表示されますabnormal

問題は、手順のメモと結果の両方が同じテーブル内のテキストとしてデータベースに入力されることです。それらが持つ唯一のリンク情報は患者IDです。一致する手順/結果ごとに、患者IDと日付のリストを作成する必要があります。

最初にすべてのテキスト一致手順とテキスト一致結果を並べ替えて一時テーブルを分離し、次にそれらを何らかの方法で結合することを考えましたが、「互いに1週間以内」でグループ化し、残りを破棄する方法がわかりません。

任意のヒント?ここから答えるのに役立つ情報はありますか?

要求された追加情報:

基本的に私はこれを持っています:

PatientID       ReportType       ReportDate     ReportText

24734           Procedure        1/1/1901       Lots O HTML
24734           Report           1/2/1901       Lots O HTML
...

この表は、ReportText列の「screening」および「abnormal」という単語をすでにフィルタリングした結果です。したがって、上記の2つの結果を考えると、患者IDが一致していることがわかります。また、各レポートタイプが互いに1週間以内に存在するため、一致し、1つのラインアイテムとしてリストされているはずです。

4

2 に答える 2

1

次のことができます

select   * 
from     tableA a1
         inner join tableA a2
           on  a1.patientid = a2.patientid
           and a2.textvaluecolumn = 'abnormal'
where    a1.textvaluecolumn = 'screening'
and      datediff(wk, a1.date, a2.date) = 1

したがって、左のテーブルにはスクリーニング部分があり、右のテーブルには異常部分があります。後で、開始と終了の間の週数 (wk) の差を返す datediff 関数を使用して、互いに減算できるいくつかの日付を取得します。そのために日(d)を使用することもできます:)

于 2012-08-03T09:52:42.220 に答える
0

データが次のような場合に何が起こるか:

patientID    text        date 
1            procedure1   1/1/12 
1            procedure2   1/2/12 
2            procedure1   1/5/12 
2            result1      1/12/12 
1            result2      1/8/12 
1            result1      1/9/12

結果テキストが実際に手順と一致することをどのように確認しますか?

于 2012-08-02T21:38:39.493 に答える