DPCに包括された注射薬剤を抽出するSQL
「一体どんな注射がDPCで消えたのか」調べたい、ということは割とよくあります。
DICにおけるリコモジュリンのように、分岐が用意されていればいざ知らず、殆どの薬剤は溶けて消えてしまうからです。
以下のSQLで、誰にどのような薬剤が使われ消えて行ったのか、リストを取り出すことが出来ます。
select e.データ識別番号,e.実施年月日,e.診療明細名称,SUM(e.明細点数・金額*e.行為回数) AS 薬剤円 from e1604 AS e Where e.データ区分 BETWEEN 30 AND 33 AND (データ識別番号,実施年月日) IN (select データ識別番号,実施年月日 from d1604 Where データ区分 = 93) group by e.データ識別番号,e.実施年月日,e.診療明細名称 HAVING SUM(e.明細点数・金額*e.行為回数) > 0
このSQLでは二つのテーブル(EFファイルとDファイル)から呼び出しをしています。 理屈としては
EFから全ての注射薬剤データを引っこ抜く
DファイルからDPC入院料のあるデータ識別番号と実施年月日を抽出する
ふたつのデータを突き合わせて、DPC入院料のあるときに使用された薬剤情報だけを残す
という仕組みです。
AND (データ識別番号,実施年月日) IN (select データ識別番号,実施年月日
from d1604 Where データ区分 = 93)
となっている部分がミソで、EFのデータ識別番号,実施年月日
とDファイルのデータ識別番号,実施年月日
が一致するものを条件にしています。
※()で括って複数のキーを指定する記法は、Postgre特有かも知れません。
他のSQLでも動くかも知れませんが、保証は出来ないです