アプリ版:「スタンプのみでお礼する」機能のリリースについて

テーブルに以下のような内容が格納されているとします。

グループ1  グループ2
----------+------------+----
購買係     山田太郎
掃除当番    山田太郎
営業課     購買係
営業課      事務係
第一営業部   営業課
----------+-------------+----

上記のようなデータの持ち方で例えば
グループ1「山田太郎」で検索を行なった際に
それに紐付くデータを抽出したいと考えております。

出力結果
---------
購買係
掃除当番
営業課
第一営業部

上記をSQLを使って出力する方法をどうかお教えください。

A 回答 (8件)

Oracle使えば階層型のSQLで取得可能です。


一応無償のExpress版もあるので導入を検討してみてはどうでしょうか。
後、DB2、SQLSERVER 2005の再帰SQLでも取得できると思います。

この回答への補足

ご回答感謝です。まさしくOracleにデータを格納しているのですが、階層型SQLというのを良ければもう少し詳しく教えていただけないでしょうか?

補足日時:2008/03/14 23:01
    • good
    • 0

Oracleの階層問い合わせの例です。



http://www.atmarkit.co.jp/fdb/rensai/sqlclinic06 …
    • good
    • 0
この回答へのお礼

皆さんにお教えいただいた方法を参考に意図する作業を行うことができました。どうもありがとうございました。

お礼日時:2008/03/18 20:53

>実質的な階層が4~8程度あるのですがテーブルを分けるとなるとどのように分けると良いでしょう


単純な話しです。
第一階層
検索キー、第二階層検索キー
第二階層
検索キー、第三階層検索キー
・・・
でしょ。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。ソースDBの構造が今回のような入れ子状態になっているため困っておりました。将来的にはテーブルを分けた形での運用を考えたいと思います。

お礼日時:2008/03/18 20:56

#5です。

一部訂正します。

#1さんも指摘していますが、



#4さんも指摘していますが、
    • good
    • 0

RDBMS名とバージョンは何ですか?


せっかく具体的なSQLを提示しても、azuaz_001の環境では実行できないかも知れません。

#1さんも指摘していますが、Oracleの階層問い合わせ、DB2やSQL Server 2005の再帰クエリなら、実質的に階層の制限はありません。
それ以外のRDBMSなら、8階層であればその階層分のunionと自己結合を組み合わせて可能です。
    • good
    • 0

>グループ2の「山田太郎」で検索 ⇒


>グループ1「購買係」「掃除当番」を抽出
>抽出した「購買係」「掃除当番」をグループ2の検索対象として
>グループ1「営業課」を抽出
>抽出した内容をさらに検索対象・・・・・・
>という内容です。
やりたいことはわかりましたが、そんな正規化されていないテーブルにしなけりゃ駄目なんでしょうか?
階層にしたいなら、テーブルを分けるべきかと思いますが。
批判的意見で申し訳ない。

この回答への補足

実質的な階層が4~8程度あるのですがテーブルを分けるとなるとどのように分けると良いでしょう?

補足日時:2008/03/14 22:50
    • good
    • 0

階層があるようですね。


最大いくつまで階層がありえるのか、
それとも無制限なのかお聞かせ願えますか?
制限があれば苦しいけど無理矢理なセルフジョインで
できそうな気がしてます。

この回答への補足

階層制限は特になく実質無制限なのですが、実際の階層としましては最大でも8階層で運用上これ以上深い階層は持たない形です。
どうかよろしくお願いします。

補足日時:2008/03/13 22:08
    • good
    • 0

データの例とやりたいことが、さっぱりかみ合わないのですが・・



グループ1に「山田太郎」はありませんよね?

グループ2だとしても、紐付くグループ1は「購買係」「掃除当番」だけ・・

私がおかしいですか?

この回答への補足

申し訳ございません。私が間違っておりました。ご指摘のとおり検索対象は「グループ1」ではなく「グループ2」です。

グループ2の「山田太郎」で検索 ⇒
グループ1「購買係」「掃除当番」を抽出
抽出した「購買係」「掃除当番」をグループ2の検索対象として
グループ1「営業課」を抽出
抽出した内容をさらに検索対象・・・・・・
という内容です。

補足日時:2008/03/13 22:03
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す