過去の桐井戸端BBS (桐ver.8)
17020 結合させたらデータの並びが変になった 悲しげ 2002/08/16-12:27
私はどうも「結合」が苦手でして、それで昨夜からドツボにはまりまして
SOSを発信させていただきます。

顧客.tblと売掛台帳.tblから、一部の客について、或る期間内の売上等明細データを抽出させています。
さて、ドツボと云うのは、出て来たデータの並びがおかしいのです。
客コード、年、月、日、伝番 の順までは正しいのですが、売上明細の並びが次のようになってしまいます。
 伝番101 消費税
 伝番101 商品C
 伝番101 商品B
 伝番101 商品A
 伝番102 消費税
 伝番102 商品F
 伝番102 商品E
 伝番102 商品D

なお、結合元データたる売掛台帳上での並びは、当然ながら次のようになっています。
これは並べ替え(索引)状態でも基本状態でも同様。
 伝番101 商品A
 伝番101 商品B
 伝番101 商品C
 伝番101 消費税
 伝番102 商品D
 伝番102 商品E
 伝番102 商品F
 伝番102 消費税

類似の処理は何度も扱ったことがあるのですが、このようになったのは初めてです。
で、思い当たる節が無いのです。
この原因と対策につき、ご助言をお願いします。<(_ _)>

※「実表の更新」は「しない」設定ですが、「する」設定でも現象としては同様でした。
「編集中の表を結合する」チェックの有無も同様。
17026 Re:結合させたら並びが変? うにん 2002/08/16-14:24
記事番号17020へのコメント
悲しげさん

結合結果の並ぶ順は、結合表で定義した並べ替え以外は影響しません。
結合元をどう並べ替えても関係ありません。
それは桐でも同じだと思います。(そうしないと、結合作業に索引が使えず非効率になる)
単独の表では実際問題として「入力した順」というのが厳然と存在しますが、
結合後は別の表に書き出したようなもので、元の表の入力順を維持するのは無理でしょう。
結合条件の両側を「全て」にすれば、元の表にない行も発生するわけですし。

しかし桐では結合表定義に並べ替えを入れると並び順以外に結果が変ってしまうというバグ?
がありましたからねえ。9では直ったかな?

結合したあとで並べ替えるのではだめでしょうか。

17029 Re:結合させたら並びが変? 悲しげ 2002/08/16-15:25
記事番号17026へのコメント
どもっ、うにんさん、コメントおありがとうございました。
仕組みは大体諒解できました。
う〜ん、それにしても(結合表で定義した並べ替え項目以外は)
キッチリと逆順になるとは(;_;)。綺麗に逆順みたいです。
これなら綺麗に正順も可能なんじゃないかと思ってしまいました。

さて、仕組みが判った、と云うか、これ以上どもならんことが
判ったからには対策を取ります。

>結合したあとで並べ替えるのではだめでしょうか。

実は売上明細の部分には並べ替えるための要素がないのです。

で、方法その1は結合前に、元表たる売上台帳.tblの方の作業項目で
連番的なものを振っておき、その作業項目も結合で取得する。

方法その2。台帳に転記する前の伝票入力の時点では、
品目明細部には[枝番]項目があるので、(今まで台帳に枝番までは転記していなかったのだが)
これを転記保存することとし、結合でも生かすようにする。
方法その3。細部は実は未確認なんですけど、結合後が本当に
正しく逆順なのであれば、これに連番を振って並べ替えることも
可能かも(客コード、年月日、伝番までは昇順、連番だけを降順にするとか)。

後刻、試してみます。

17030 Re:結合させたら並びが変? 悲しげ 2002/08/16-15:59
記事番号17029へのコメント
>で、方法その1は結合前に、元表たる売上台帳.tblの方の作業
>項目で連番的なものを振っておき、その作業項目も結合で取得
>する。
>方法その2。台帳に転記する前の伝票入力の時点では、品目明
>細部には[枝番]項目があるので、(今まで台帳に枝番までは転
>記していなかったのだが)これを転記保存することとし、結合
>でも生かすようにする。
>方法その3。細部は実は未確認なんですけど、結合後が本当に
>正しく逆順なのであれば、これに連番を振って並べ替えること
>も可能かも(客コード、年月日、伝番までは昇順、連番だけを
>降順にするとか)。

実データで方法その3を試してみましたが、例外なくきっちり
逆順に展開されていました。でも、これはタマタマであって、
(DOSでは正順に展開されたような記憶がうっすらとあったり)
将来的に仕様の同一性が担保できないような予感もありますから、
やはり方法その1〜2の線を採用することにしました。
17031 Re:結合させたら並びが変? うにん 2002/08/16-17:04
記事番号17030へのコメント
どうも〜

>実データで方法その3を試してみましたが、例外なくきっちり
>逆順に展開されていました。でも、これはタマタマであって、
>(DOSでは正順に展開されたような記憶がうっすらとあったり)
>将来的に仕様の同一性が担保できないような予感もありますか
>ら、やはり方法その1〜2の線を採用することにしました。

それがよいでしょう。
手元の1〜60まで連番を降った表(数値項目1つだけ)を自己結合してみたら、
(並べ替えも索引も一切なし。)全部昇順(入力順)になりました。
「タマタマ」ということでしょう。

結合表に並べ替えを追加したら、むちゃくちゃな結果に。。。
だめじゃん>桐9β(>_<)

むむ。(すべて)というのをなくしたら、ちゃんと整列できたみたい。
もしかして(すべて)がバグってるのかな?

戻る