[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[orca-users:05399] Re: FileMakerへORCAからのデータインポートについて



こんにちは、 idk 赤木です。
遅れてすみません。

> > 例えば、 \d をして消したなら tbl_hkncombi.delkbn を見ればいいようですし。
> > 有効期限なら tbl_ptkohinfやtbl_pthkninfのものではなく tbl_hkncombi の
> > tekstymd, tekedymdを見ればいいようです。
と、書いときながら想像通りには行きませんでした。

まず、

SELECT 
  ptnum.ptnum AS 患者番号,
  ptinf.name AS 名前,
  hkncombi.hkncombinum AS 保険組み合せ番号,
  pthkn.hknjanum AS 保険者番号,
  hknja.hknjaname AS 保険者名,
  ptkoh1.jkysnum AS 受給者番号1,
  ptkoh2.jkysnum AS 受給者番号2

FROM 
  tbl_ptinf AS ptinf 
  INNER JOIN tbl_ptnum AS ptnum ON
    (ptinf.ptid = ptnum.ptid)
  LEFT JOIN tbl_hkncombi AS hkncombi ON
    (hkncombi.ptid = ptinf.ptid) 
  LEFT JOIN tbl_pthkninf AS pthkn ON 
    ((hkncombi.ptid = pthkn.ptid ) AND 
       (hkncombi.hknid = pthkn.hknid))   
  LEFT JOIN tbl_ptkohinf AS ptkoh1 ON 
    ((hkncombi.ptid = ptkoh1.ptid) AND 
       (hkncombi.koh1id = ptkoh1.kohid)) 
  LEFT JOIN tbl_ptkohinf AS ptkoh2 ON 
    ((hkncombi.ptid = ptkoh2.ptid) AND 
       (hkncombi.koh2id = ptkoh2.kohid))
  LEFT JOIN tbl_hknjainf AS hknja ON 
    (pthkn.hknjanum = hknja.hknjanum)

という風に作っておいて(見易いようにあんまり SELECT してないです)、後は 

WHERE 
  hkncombi.hkncombinum = null OR
  (
    (hkncombi.tekstymd < 今日 AND hkncombi.tekedymd > 今日) AND
    hkncombi.delkbn != 1
  )

と、追加すればいいかなと思ったのですが
残念ながら保険無しの方は出て来ませんでした。
WHERE ... を外した段階では、保険無しの方は出て来たのですが

そこで
WHERE hkncombi.hkncombinum = null 
にすると、だれも出て来ません
hkncombi.hkncombinum 以外のフィールドもダメでした。
という事は、外部結合で 表示される保険組み合せがない人の、
tbl_hkncombiのフィールドは、nullじゃ無いって事なんでしょうか?
null じゃなくて別の表現があるのかも知れません、
根本的間違ってる可能性もありますが


よろしくお願いします。


On Wed, 12 Nov 2003 08:37:00 +0900
"中山裕雄" <hnaka@xxxxxxxxxxxxxxx> wrote:

> idk赤木さん お早うございます。
> 
> 中山@鳥取県です。
> 
> > どちらにしても、保険が入力されてない人が出て来ない事が問題なのですね。
> 
> 私が問題にしている訳ではなく、そういうケースのあるかも、ということです。
> 
> > そして、ふと思ったですが私はこのクエリの目的を知りませんでした。
> 
> はい、その目的が読んだ人によって、異なると思います。
> 
> > > 07019は特殊な例ですがhkncombinumの6,7は通常のクエリーでは
> > > 削除されたことになっているデータも取り出せてしまいます。
> > > よってこのyぷなデータを除く条件も必要です。
> >
> > という話題になっていますが、何で 6,7 が出て来なくていいものなのかという事
> が
> > 分かりませんでした。
> > このデータだけを見た場合 6は8と 7は9と 同じように見えますが、主保険が違う
> か
> > も知れませんし
> > これだけのフィールドでどこが悪いのか追う事は出来ないような気がします。
> 
> その通りです。これだけでは、追えないから別のフィールドも考えないと
> いけませんよという意味の例示です。
> 
> > これだけで考えると、6,7がダメなら8,9もダメだという論理も成り立ちます。
> > 唯一違うhkncombinumに原因がある場合を除けばですが。
> >
> > でも,
> > > 削除されたことになっているデータも取り出せてしまいます。
> > "この削除されたことになっている"とはどういう事かを洗い出せばもう未来は明る
> > いような気がします。
> > 例えば、 \d をして消したなら tbl_hkncombi.delkbn を見ればいいようですし。
> > 有効期限なら tbl_ptkohinfやtbl_pthkninfのものではなく tbl_hkncombi の
> > tekstymd, tekedymdを見ればいいようです。
> 
> はい、総論的にはその通りです。
> 
> ここで目的について確認しましょう。
> 
> FileMakerユーザーは患者情報、保険情報、公費情報を
> 一人一枚のカード型データベースとして見る傾向があります。
> 
> 私はORCAのようなやや複雑な構造のDBスキーマから
> ワンクリックで一人一枚のカードにデータを取り出すクエリーを
> 作って提示したつもりでしたが、後になって不完全であることに
> 気が付いたので議論のための情報を提示しているだけです。
> 私自身の電子カルテは別のDB構造なので、あくまでも自分のためでは
> なは無く、他の電子カルテあるいはFileMakerユーザーの参考として
> 提示したまでです。
> 複数回に分けて取り込めばもっと単純になりますが、そこは実は
> 利用され状況で異なると思います。
> 
> 赤木さんなら具体的にどんなクエリーを提示されますか?
> 
> 中山小児科内科医院
> 中山裕雄
> 
> 
> 
> 
> 
>