SQLServer 2008 です。
以下のツリーデータの場合に
A ┬C
│├D ┬H
││ ├I
││ └J
│└E
B ┬F ┬I
│ └L
└G
次のようなデータを登録しています。
┌──┬──┬──┐
│OYA │KO │Data│
├──┼──┼──┤
│A │C │"C" │
├──┼──┼──┤
│A │D │"D" │
├──┼──┼──┤
│A │E │"E" │
├──┼──┼──┤
│B │F │"F" │
├──┼──┼──┤
│B │G │"G" │
├──┼──┼──┤
│D │H │"H" │
├──┼──┼──┤
│D │I │"I" │
├──┼──┼──┤
│D │J │"J" │
├──┼──┼──┤
│F │I │"I" │
├──┼──┼──┤
│F │L │"L" │
└──┴──┴──┘
引数OYA="A"でSQLを実行した場合に
以下のような
この引数を含むそれ以下のツリーに関する
データを取得する方法を教えてください。
┌──┬──┬──┐
│OYA │KO │Data│
├──┼──┼──┤
│A │C │"C" │
├──┼──┼──┤
│A │D │"D" │
├──┼──┼──┤
│A │E │"E" │
├──┼──┼──┤
│D │H │"H" │
├──┼──┼──┤
│D │I │"I" │
├──┼──┼──┤
│D │J │"J" │
└──┴──┴──┘
No.2ベストアンサー
- 回答日時:
この回答への補足
ありがとうございます。
説明と同様に、テーブルを作成し、
同じデータを登録しました。
---------
照会1:
WITH RECURSIVE 中間表(親品番, 子品番, 所要数) AS
( SELECT PP.親品番, PP.子品番, PP.所要数 FROM 部品構成表 PP
WHERE PP.親品番='自転車'
UNION ALL
SELECT PP.親品番, PP.子品番, PP.所要数*中間表.所要数
FROM 中間部品表, 部品構成表 pp
WHERE pp.親品番=中間表.子品番
)
SELECT 親品番, 子品番, 所要数
FROM 中間表;
---------
上記を実行すると
以下のエラーが発生しました。
----------
メッセージ 102、レベル 15、状態 1、行 2
'RECURSIVE' 付近に不適切な構文があります。
----------
理由がわかりません。
教えてもらえないでしょうか?
No.3
- 回答日時:
残念ながら
>持ち合わせていないので
検証できる環境がありません。
識者のご登場をお待ちください。
この回答への補足
どうもありがとうございました。
いろいろ調べてわかりました。
どうやら、SQLServer2008では RECURSIVE を
使用することができないようです。
WITH [CTE] (親品番, 子品番, 所要数)
として使用するみたいですね。
なんとか動作するようになりました。
ありがとうございました。
No.1
- 回答日時:
SELECT * FROM Table
WHERE OYA='A'
OR OYA IN (SELECT KO FROM Table WHERE OYA='A')
この回答への補足
ありがとうございます。
説明不足でもうしわけありません。
確かに、質問と同じ結果が出ましたが、
ほしいのは
>この引数を含むそれ以下のツリーに関する
>データを取得する方法
ですので、
A ┬C
│├D ┬H ┬K
││ │ └L
││ ├I
││ └J
│└E
B ┬F ┬I
│ └L
└G
このような場合
OYA KO Data
--------------
H K K
H L L
も取得できるようにしたいのです
どうもすみませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- MySQL 複数DBテーブルからのデータ取得 3 2022/05/17 15:02
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- Oracle sqlで質問です。 idを元にidに紐付くデータで住所コードがjpのみのデータ以外のidを取得したい 4 2023/03/20 17:41
- SQL Server これをSQL文で出来るでしょうか? 1 2023/03/26 02:16
- MySQL SQLについて教えて下さい。 SELECT分で、あるカラムにある日付の 半年先のデータを取って来たい 3 2022/12/07 22:28
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Java 動かなくなったのでJavaソースを手直しお願いします。 2 2022/04/30 05:35
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~12/2】 国民的アニメ『サザエさん』が打ち切りになった理由を教えてください
- ・ちょっと先の未来クイズ第5問
- ・【お題】ヒーローの謝罪会見
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MS-Accessのエクスポートで異常...
-
Sqliteで使えない文字。
-
暗号化したDBのデータ移行
-
データベース
-
ACCESSのデータをWebブラウザで...
-
SQL文で、重複データの上書きは...
-
ACCESS2010 Excelエクスポート ...
-
SQL ServerにExcelをリンクさせ...
-
oracleデータベースの更新履歴
-
【DB】同じトランザクション内...
-
エクセルのフィルタ抽出が固まる
-
SQLServer2012の復元ができない
-
SQL*Loaderのコミットポイント...
-
復元に異常に時間がかかる
-
復旧中のデータベースについて
-
警察はスマホに保存した動画や...
-
接続されてるユーザーを切断す...
-
postgresql についてです
-
データベースで
-
ログファイルの圧縮がされずに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MS-Accessのエクスポートで異常...
-
ACCESSのデータをWebブラウザで...
-
1回目の実行に3分、2回目の実行...
-
Sqliteで使えない文字。
-
accessの上限容量2Gでは容量が...
-
ACCESS2010 Excelエクスポート ...
-
ACOSのRDBについて教え...
-
SQL ServerにExcelをリンクさせ...
-
ツリー情報のデータをSQLで取得...
-
SQL文で、重複データの上書きは...
-
SQLServerのDBのうちテーブルを...
-
過去データに対するデータベー...
-
別サーバーへのデータの同期更...
-
ACCESSのクエリからORACLEのDB...
-
AccessのLANでの共有
-
会社の諸事情により全システム...
-
一定時間で自動に2つのSQLServ...
-
SQLite3にて重みづけを行った抽...
-
SQLSERVERのテーブルにデータを...
-
VBからACCESSレポート...
おすすめ情報