問題タブ [connect-by]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
oracle - Connect by 節で階層の最上位を取得する
CONNECT BY
階層データを検索するために Oracle で句を使用しているときに問題に直面しています。例を挙げましょう: A は子パーツ B を持つ私の親パーツであり、B にも子パーツ C があります。CONNECT BY
節を使用しているとき、3 つのレベルすべてを取得できますが、最上位レベルのみが必要です。つまり、 A.
sql - 階層クエリ: 各ノードの直接の子の数を取得する
私は階層クエリを初めて使用し、それに関するほとんどの投稿を確認しました。
改善したい質問があります。
私のシナリオは次のようなものです:
表データは次のとおりです。
結果を次のようにしたい:
DIRECT_CHILDREN_COUNT を除くすべての列を提供する次のクエリを作成しました
ノードのすべての子 (直接の子だけでなく) の数を取得する方法に関する多くの投稿がありますが、それらは私には当てはまりません。
1.直接の子の数のみが必要です。2.可能であれば、 joins
を使用せずにこれを達成したいと考えています。
直接の子を各レコードの列値としてカウントする方法がわかりません。とにかく、階層クエリを使用して DIRECT_CHILDREN_COUNT を取得できますか?
oracle - Oracle 10g PL/SQL Connect By Priorが子と親を同じ行に返す
このコードは、親の行を返します
クリス
「Where」句が含まれていない場合、コードは次を返します。
私が返したいのは、列ではなく行の次のものです。
ボブ・クリス
Chris は才能があり、Bob の親であるため、コードは親だけでなく、その親のクエリを作成した子も返します。このコードでは、次のようになります。
才能のある子供のクリスと、クリスの検索を開始した前の子供のボブがいるでしょう。たとえば、ボブがガラの子供で、ガラがクリスの子供だったとしても、ボブとクリスだけを結果として取得したいと思います。 .
条件:一時テーブルまたは任意の種類のテーブルを作成する権限がないため、一時テーブルなしでそれを行う方法がわからない場合を除き、ループを使用してこれを行うことはできません
「前の」ステートメントの前の子と、実際には前の子の親である新しい「子」を返す方法がわかりません。
sql - 階層チェックを繰り返す Connect By クエリ
次のクエリを作成しましたが、残念ながら機能しません。私が達成しようとしているのは、各行で選択した日付が顧客関係の有効日であることだけです。
ci_per_per
表には次の列が含まれます。
per_id1
、per_id2
、start_dt
、end_dt
per_id1
は親、per_id2
は子です。
start_dt
end_dt
関係の期間を定義します
SQLで発生するエラーは次のとおりです。END_DT1: Invalid identifier.
Oracleでこの機能を実現する方法はありますか?
シナリオ例:
今、私はすべてのレコードを01-01-2011
開始日として持つようにしたいと考えています。ただし、階層が逆の場合 (per_id_1 と Per_id2 の値を交換することを意味します)、レコードはそのまま表示されます。
上記の例では、start with
句 withper_id2='A'
条件で実行する必要があることに注意してください。また、クエリを実行すると結果が変わる可能性があることを理解してくださいper_id2='B'
したがって、結果から始めるとper_id2='B'
、すべてのレコードが存在し、存在01-01-2010
しないようにする必要があります01-01-2011
ここで終了日が設定さ01-01-2011
れ、E を含むレコードと A を含むレコードを除くすべてのレコードが対象となります。終了日はnull
(A から開始すると仮定して) になります。
sql - 2 つの値 (from と to) から非ブレーク期間を計算してグループ化する
この行を連結するために使用できる Oracle SQL 手法はどれですか。
そのような結果のために:
? from
とは整数ピリオドの開始と終了であり、のto
非分割ピリオドを選択する必要があると仮定しますid
正しい方向と例を探しているだけですが、これはgroup by
orconnect by
または何か他のものを使用して行うことができますか?
DBはOracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
sql - 階層インポートの単一クエリ ソリューション - Oracle
興味深い問題があります。少なくともそう思います。したがって、上記の構造を持つテーブル (codes_table) があります (これはツリー メニューです)。ツリーは、2 つの整数と (常に) 次のようなドット パターンによって定義されます。
私が必要とするのは、次のような新しい構造の名前として実際の COD_MENU を入れて、その父へのキーをフォアイングする数値 ID を持つ構造を持つ新しいテーブルに挿入スクリプトを生成することです。
これは、再帰的な手順を使用して plsql ブロック コードで既に実行しています。上記は参照用の私の実際のコードです。
私がやろうとしているのは、CONNECT BY / START WITH / ROWNUM および LEVEL ステートメントを使用して単一のクエリでそれを達成し、必要に応じて同じテーブルとの結合を使用することです。いろいろ試しましたが、解決策が思いつきませんでした。これは単なる好奇心です。
私ができる最も近いことは上記の選択ですが、太陽ではなく父親のIDを持っているだけです
お時間をいただき、ありがとうございました。
sql - CONNECT BY PRIOR の結果をエクスポートしようとすると、ORA-01436 が発生する
Oracle に 2 つの列を持つテーブルがあります: CODIGO_DA_CONTA_PAI
and CODIGO_DA_CONTA_FILHO
(基本的には親と子を意味します)。
Parent CT-0000000000、Children および Children of Children については、別の列を更新する必要があります (ただし、今のところ、階層のみを選択しようとしています)。
Child に 1 つ以上の Child がある場合、それは Parent 列にも表示されます。
以下に示すこのクエリを実行すると結果が表示されますが、エクスポート、SELECT 句で囲む、または結果セットを下にスクロールしようとすると、エラー メッセージ番号 01436 が表示されます。
私が読んだところによると、決して終わらない結果セットを生成しているようです。
どうすれば適切に動作させることができますか? 私のコードは正しいですか、それとも何か不足していますか?