[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[orca-users:05399] Re: FileMakerへORCAからのデータインポートについて
- To: orca-users@xxxxxxxxxxxxxx
- Subject: [orca-users:05399] Re: FileMakerへORCAからのデータインポートについて
- From: ryo akagi <akagi@xxxxxxxxxxx>
- Date: Thu, 13 Nov 2003 18:20:28 +0900
こんにちは、 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ユーザーの参考として
> 提示したまでです。
> 複数回に分けて取り込めばもっと単純になりますが、そこは実は
> 利用され状況で異なると思います。
>
> 赤木さんなら具体的にどんなクエリーを提示されますか?
>
> 中山小児科内科医院
> 中山裕雄
>
>
>
>
>
>