[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[orca-users:05234] Re: FileMakerへORCAからのデータインポートについて
- To: <orca-users@xxxxxxxxxxxxxx>
- Subject: [orca-users:05234] Re: FileMakerへORCAからのデータインポートについて
- From: "中山裕雄" <hnaka@xxxxxxxxxxxxxxx>
- Date: Sat, 1 Nov 2003 18:41:05 +0900
植田さん、饗庭さん こんにちは
中山@鳥取県です。
インポートデータの欠落、重複問題が議論になり始めたことは
自体ORCAが現場に普及し始めた結果と感じます。
実運用している生データが無いと問題にさえなりませんので。
さてまず最初に私が提示したクエリーは最終的な解ではありませんので
あのままでは未完成です。
どうすれば一発で欠落も重複もないクエリーとして完成できるか
もう少し考えてみましょう。
まず
SELECT tbl_ptnum.ptnum, tbl_hkncombi.hkncombinum, tbl_pthkninf.tekstymd,
tbl_pthkninf.tekedymd, tbl_ptkohinf.tekstymd, tbl_ptkohinf.tekedymd
FROM (((((tbl_ptnum INNER JOIN tbl_ptinf ON tbl_ptnum.ptid = tbl_ptinf.ptid)
LEFT JOIN tbl_hkncombi ON tbl_ptinf.ptid = tbl_hkncombi.ptid) LEFT JOIN
tbl_pthkninf ON (tbl_hkncombi.hknid = tbl_pthkninf.hknid) AND
(tbl_hkncombi.ptid = tbl_pthkninf.ptid)) LEFT JOIN tbl_ptkohinf ON
(tbl_hkncombi.koh1id = tbl_ptkohinf.kohid) AND (tbl_hkncombi.ptid =
tbl_ptkohinf.ptid)) LEFT JOIN tbl_ptkohinf AS tbl_ptkohinf_1 ON
(tbl_hkncombi.ptid = tbl_ptkohinf_1.ptid) AND (tbl_hkncombi.koh2id =
tbl_ptkohinf_1.kohid)) LEFT JOIN tbl_hknjainf ON tbl_pthkninf.hknjanum =
tbl_hknjainf.hknjanum
ORDER BY tbl_ptnum.ptnum, tbl_hkncombi.hkncombinum, tbl_pthkninf.tekstymd;
を実行した結果の7000番〜7020番台を提示します。IDは全てダミーデータですがコン
ビ等は生です。
(改行されて見にくいかもしれませんが)
ptnum hkncombinum tbl_pthkninf.tekstymd tbl_pthkninf.tekedymd
tbl_ptkohinf.tekstymd tbl_ptkohinf.tekedymd
07000 1 20030611 20050611
07000 2 20030611 20050611 20020614 20060630
07000 3 20020614 20060630
07000 4 20020614 20060630
07001 1 20030401 99999999
07001 2 20030401 99999999 20030704 20070731
07002
07003 1 20030401 99999999
07004 1 20030401 99999999
07004 2 20030401 99999999 20000403 20040430
07004 3 20000403 20040430
07005 1 20030401 99999999
07005 2 20030401 99999999 20030226 20070228
07005 3 20030226 20070228
07006 1 20030401 20060930
07007
07008
07009
07010
07011 1 20030401 99999999
07011 2 20030401 99999999 20030812 20070831
07012 1 20030401 99999999
07013
07014
07015 1 20030401 99999999
07016 1 20030722 99999999
07016 2 20030722 99999999 20030722 20070731
07017
07018 1 20030401 99999999
07019 1 20030901 99999999
07019 2 20030401 20030930
07019 3 20030401 20030930 20030117 20070131
07019 4 20030117 20070131
07019 5 20030117 20070131
07019 6 20031001 99999999
07019 7 20031001 99999999 20030117 20070131
07019 8 20031001 99999999
07019 9 20031001 99999999 20030117 20070131
07020 1 20030824 99999999
07020 2 20030824 99999999 20030824 20070831
07007のようにhkncombinumがnull だとwhere条件で1等に絞るとデータが
欠落します。
また絞らなければ07019のIDの様にデータは重複します。
tekstymdからtekedymdの期間もID毎に異なります。
07019は特殊な例ですがhkncombinumの6,7は通常のクエリーでは
削除されたことになっているデータも取り出せてしまいます。
よってこのyぷなデータを除く条件も必要です。
以上より一発で欠落も重複もないクエリーを作るためには
提示したデータが欠落も無く、重複もしない条件式を考えて
クエリーを作る必要があります。
ちなみに私もまだ最終解を出していません。
是非一緒に考えてみませんか?
期限なし、正解が出るまで。
ptnum,hkncombinum,tekstymd,tekedymd,tbl_ptkohinf.tekstymd,tbl_ptkohinf.teked
ymd
のみの項目で解が出ればあとは項目を追加しても大丈夫のはずです。
中山小児科内科医院
中山裕雄