問題タブ [recursive-query]
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 - テーブルの依存関係の再帰クエリは、私が望むほど再帰的ではありません
外部キーに基づいて、ルートテーブルのすべての子孫テーブルを検索するクエリを作成できると思いました。
クエリは次のようになります。
私が得る結果は次のようになります:
この結果は、のすべての子テーブルですが、クエリは、、、またはROOT_TAB
の子に対して繰り返されません。CHILD_TAB_1
CHILD_TAB_2
CHILD_TAB_3
再帰クエリは私にとって新しいので、connect by
句に何かが欠けていると思いますが、ここでは空白を描画しています。ROOT_TAB
単一のクエリでの完全な階層を取得することは実際に可能ですか、それとも再帰的なプロシージャでクエリをラップする方が良いですか?
sql - 1日の合計を計算するSQLは、前日の合計を差し引いたものです
日付、アイテム、数量が記載されたテーブルがあります。
1日あたりの合計を返すためにSQLクエリが必要ですが、合計は数量から前日の合計を引いたものです。月が進むにつれて量が蓄積されます。したがって、1番目は5、2番目は12、3番目は20になる可能性があります。
したがって、1番目は5を追加します。2番目は7を追加して12を作成します。3番目は8を追加して20を作成します。
私は過去にこのようなことをしたことがありますが、それを見つけることも覚えることもできません。相関サブクエリが必要になることはわかっています。
TIA
-
編集1
MicrosoftAccessを使用しています。日付は日時フィールド、アイテムはテキスト、数量は数値です
-
編集2
わかりました、これは私が持っているものです
oos.report_dateを#10/10/2010#と表示する場所に移動するにはどうすればよいですか。mysqlのようにそこに貼り付けることができると思いましたが、運がありませんでした。研究を続けていきます。
sql-server-2008 - SQLselect反転ツリー
こんにちは私はSQLにツリー構造を持っています。ロジックは標準です:SomeID、ParentID、その他のフィールド。次のようなデータを選択するselectプロシージャがあります。
等々。
次のように、反転結果を取得するためのselectプロシージャの記述方法(最初に最も深いブランチが選択され、最後にルートブランチが選択されます)。
等々。
非反転選択は次のようになります(私はSqlServer 2008を使用しています):
mysql - Mysql 列の行が別の行の値で始まる
私は以下のようなテーブルを持っています:
A、B、C は列で、MyTable はテーブル名で、次のような mysql クエリを実行したい:
上記のクエリからわかるように、テーブルがあり、別の行の値で始まり、条件に一致する列を見つけたいと考えています。しかし、上記のクエリは明らかに失敗します。これは、mysql が "MT1.B%" を文字列として受け取るためです。Mysql でこれを達成するにはどうすればよいですか?
c# - 階層データを検索するための最良の方法
階層フィルタリングを使用してデータをクエリできる機能を構築することを検討しています。私はそれをどのように進めるかについていくつかのアイデアを持っていますが、より効率的かもしれない推奨事項や提案があるかどうか疑問に思っていました。
例として、ユーザーが仕事を探していると想像してください。職種は以下のとおりです。
ユーザーは、特定の地域(グラスゴーなど)またはより広い地域(スコットランドなど)で検索できます。
私が検討している2つのアプローチは次のとおりです。
- 各レコードのデータベースに子を記録し(つまり、猫1の子フィールドに2、3、4が含まれる)、そのレコードに対して。を使用してクエリを実行します
SELECT * FROM Jobs WHERE Category IN Areas.childrenField
。 - 再帰関数を使用して、選択した領域に関連するすべての結果を検索します。
私が両方から見る問題は次のとおりです。
- このデータをデータベースに保持することは、構造に対するすべての変更を追跡する必要があることを意味します。
- 再帰は遅く、非効率的です。
最善のアプローチに関するアイデア、提案、または推奨事項はありますか?MSSQL 2005 DBでC#ASP.NETを使用しています。
sql-server-2005 - グループ化されたテーブル行に再帰CTEを適用する(SQL Server 2005)
PERSONKEYとROOMKEYでグループ化された部屋のチェックインとチェックアウトの時間を含むテーブル(ROOMUSAGE)があります。次のようになります。
PERSONKEY、ROOMKEYグループごとに連続する行だけを選択したいと思います。したがって、必要な結果のテーブルは次のとおりです。
カーソルの使用を避けたいので、再帰CTEを使用すると思いました。これが私が思いついたものです:
これは、非常に小さいデータセット(100レコード未満)では問題なく機能しましたが、大きいデータセットでは使用できません。
ROOMUSAGEテーブルの各PERSONKEY、ROOMKEYグループに、どういうわけかcteを繰り返し適用する必要があると思いますが、その方法がわかりません。
どんな助けでも大歓迎です、
乾杯!
sql - 行のSQLselectの子孫
ツリー構造が次のようにSQLに実装されているとします。
この表現でサイクルを作成することはできますが、それを決して起こさせないと仮定しましょう。このテーブルには、ルート(親がnullのレコード)とその子孫のコレクションのみが格納されます。
目標は、テーブル上のノードのIDを指定して、その子孫であるすべてのノードを見つけることです。
Aの親がBであるか、Aの親がBの子孫である場合、AはBの子孫です。再帰的定義に注意してください。
サンプルデータは次のとおりです。
これは以下を表します:
これを行うことで、の(直接の)子を選択できます1
。
これを行うことで、の子と孫を選択できます1
。
これを行うことで、の子供、孫、および曽孫を選択できます1
。
1
固定の深さではなく、ノードのすべての子孫を取得するクエリをどのように構築できますか?再帰クエリなどを作成する必要があるようです。
SQLiteを使用してそのようなクエリが可能かどうか知りたいのですが。ただし、このタイプのクエリでSQLiteで使用できない機能が必要な場合は、他のSQLデータベースで実行できるかどうかを知りたいと思います。
sql - SQLで多対多構造の関係を見つける.
私の質問は親子の問題に近いもので、再帰的なクエリが必要になるかもしれませんが、フォーラムを閲覧しても答えが見つかりませんでした。ここに私の問題があります:私は3つのテーブルを持っています:
関連する場所と人々のグループを特定したいと思います。たとえば、
John がロンドンとパリを
訪れ、Mary がパリとニューヨークを
訪れ、Peter がバンガロールと東京を訪れ
た場合、同じグループ コードを Mary、John、Paris、London、New York に適用し、別のグループ コードを Peter に適用したいと考えています。 、東京とバンガロール。
SQLでこれを行う方法が本当にわかりません。何か案が?
ありがとう
sql-server-2005 - 調査結果をマネージャ別に再帰的に集計する
このような StaffLookup テーブルがあります。
スタッフ体制はこんな感じ。
このような SurveyResponses のリストがあります。
私がやろうとしていることは非常に単純に聞こえますが、きちんとした迅速な方法を見つけるのに苦労しています。Srn を受け取り、構造内のその Srn の下にあるすべてのスタッフを返す sproc を作成したいと考えています。
QuestionId のスコアが 16 の場合は、調査が完了したことを示します。入力された Srn (トップ マネージャー) の行を、そのマネージャーの下の直属部下の完了した調査の数と共に返したいと思います。その下で、元のマネージャーの下にある各マネージャーに、直属の部下ごとに完了した調査の数などを表示してもらいたいと思います。
トップ マネージャーを Joe (ABC2) に設定した場合のデータを以下に示します。
sql - 再帰クエリの質問 - 行を列に分割しますか?
私はテーブル「ファミリー」を持っています。
そして、次のような出力が必要です
特定の PersonID の父と母の PersonID が (該当する場合) 別々の列に一覧表示されます。これは、作成する (したがって、そのための手順を見つける) のは比較的簡単なクエリに違いないことはわかっていますが、適切な検索用語を思いつくことができないようです。「SQL 再帰クエリ」を検索すると、最も近い結果が得られましたが、これらのメソッドをここでやろうとしていることに完全に変換することはできません。
私は学習しようとしているので、複数の方法を歓迎します。また、語彙を読む必要があります。ありがとう!