2010年12月 7日

[pgsql-jp: 40597] Re:JOIN構文についてご指導下さい

/* お詫び */
実名投稿になるのを失念しハンドルで投稿してしまいました。
管理人様、大変お騒がせ致しました。
また、皆々様には大変失礼致しましたm(__)m

佐々木さん

「あかいね」こと松本と申します。

この度は早速有難うございました。

いずれの方法においても無事希望通りの動作を確認致しました!

ご教示戴いた内容でググってみたのですが、これはセルフジョイン
になるのでしょうか?

大変参考になりました。今後ともよろしくお願い致しますm(__)m


> 「あかいね」さん
> 佐々木と申します。
> 次のような SQL 文にします。
>
> SELECT
> TBH_SIWAKEHST.ID,
> TBH_SIWAKEHST.TXT_SIWAKEDATE,
> TBH_SIWAKEHST.TXT_ATESAKI,
> B.TXT_KAMOKUTEXT,
> C.TXT_KAMOKUTEXT,
> TBH_SIWAKEHST.INT_AMOUNT
>
> FROM
> TBH_SIWAKEHST, TBM_KAMOK B, TBM_KAMOK C
> WHERE
> B.ID = TBH_SIWAKEHS.TXT_KARIKATA AND
> C.ID = TBH_SIWAKEHS.TXT_KASHIKATA
>
> または
>
> SELECT
> TBH_SIWAKEHST.ID,
> TBH_SIWAKEHST.TXT_SIWAKEDATE,
> TBH_SIWAKEHST.TXT_ATESAKI,
> B.TXT_KAMOKUTEXT,
> C.TXT_KAMOKUTEXT,
> TBH_SIWAKEHST.INT_AMOUNT
>
> FROM
> TBH_SIWAKEHST
> INNER JOIN TBM_KAMOK B ON B.ID = TBH_SIWAKEHS.TXT_KARIKATA
> INNER JOIN TBM_KAMOK C ON C.ID = TBH_SIWAKEHS.TXT_KASHIKATA
>
> です。
>
> Kiyofumi MATSUMOTO <k_matsumoto@xxxxx> wrote:
>
> > 「あかいね」と申します。
> >
> > Microsoft Access2007 + POSTGRES 9.0でDBの勉強を始めたばかりの者です。
> > どうぞよろしくお願い致します。
> >
> > これまでエクセルで管理していた経理関係のデータをDBで管理しようと
> > しています。
> >
> > 経理科目はテーブル TBM_KAMOKU にあり、TBM_KAMOKUは
> >
> > ID
> > TXT_KAMOKUTEXT
> >
> > 以上2フィールドです。IDは科目コードが格納されるテキスト型で、
> > TXT_KAMOKUTEXTは科目名を格納するテキスト型です。
> >
> > 一方、元になる仕訳データは TBH_SIWAKEHST にあり、TBH_SIWAKEHST は
> >
> > ID
> > TXT_SIKWAKEDATE
> > TXT_ATESAKI
> > TXT_KARIKATA
> > TXT_KASHIKATA
> > INT_AMOUNT
> >
> > 以上6フィールド、IDのみシリアル型で他は全てテキスト型です。
> >
> > これを、科目コードではなく科目名で表示させるSELECT文を発行したい
> > のですが、
> >
> >
> > SELECT
> > TBH_SIWAKEHST.ID,
> > TBH_SIWAKEHST.TXT_SIWAKEDATE,
> > TBH_SIWAKEHST.TXT_ATESAKI,
> >
> > TBM_KAMOKU.TXT_KAMOKUTEXT, /* ←ここに借方科目を出したい */
> > TBM_KAMOKU.TXT_KAMOKUTEXT,  /* ←ここに貸方科目を出したい */
> >
> > TBH_SIWAKEHST.INT_AMOUNT
> >
> > FROM
> > TBH_SIWAKEHST
> >
> > INNER JOIN TBM_KAMOKU ON TBH_SIWAKEHST.TXT_KARIKATA=TBM_KAMOKU.ID;
> >
> >
> > これだとTXT_KARIKATAを引数とした同じ内容の列が2行表示されます。
> > (これは理解出来ます)
> > したがって、TXT_KASHIKATAを引数とした列を表示させるためにJOIN構文を
> > 加工しようとしたのですが、例えば
> >
> > FROM
> > (TBH_SIWAKEHST
> > INNER JOIN TBM_KAMOKU ON TBH_SIWAKEHST.TXT_KARIKATA=TBM_KAMOKU.ID)
> > INNER JOIN TBM_KAMOKU ON TBH_SIWAKEHST.TXT_KASHIKATA=TBM_KAMOKU.ID;
> >
> > などとしても
> >
> > ERROR: テーブル名"tbm_kamoku"が複数指定されました
> >
> > となります。
> >
> > この場合どのようにすれば良いでしょうか?
> > ご指導よろしくお願い致します。
>
>
>
>
>

投稿者 xml-rpc : 2010年12月 7日 14:39
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/100592
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。