問題タブ [common-table-expression]
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.
sql-server - 1つのCTEを2回参照する方法は?
ページングされた結果セットを返すことができるように、行番号を含む非常に太い共通テーブル式があります。また、結果セットをページングする前に、クエリに一致するレコードの総数を返したいと思います。
明らかに、上記の私のクエリはパッチがありますが、それは私のポイントを説明するためだけのものです。結果のページと一致の総数が必要です。20行以上のCTE全体を文字通りコピーして貼り付けることなく、これを行うにはどうすればよいですか?
sql-server - シンプルに保ち、クエリで複数の CTE を実行する方法
私はこの単純な T-SQL クエリを持っています。テーブルから一連の列を出力し、他の関連テーブルからの情報も結合します。
私のデータモデルは単純です。予定されているイベントがあり、参加者がいます。各イベントに何人の参加者が参加するかを知る必要があります。
これに対する私の解決策は、スケジュールされたイベントをグループ化し、参加者の数をカウントする CTE を追加することです。
これにより、スケジュールされたイベントごとにその情報に参加できます。クエリをシンプルに保ちます。
クエリをシンプルに保ちたいと思っていますが、将来、単純なクエリ中に追加の一時的な結果にアクセスできるようにする必要がある場合は、どうすればよいですか?
複数の CTE を持つことができれば、私は本当にそれを望んでいますが、できませんよね? ここでのオプションは何ですか?
アプリケーション データ レイヤーでのビューや処理は除外しました。SQL クエリを分離することを好みます。
sql - 子の再帰をカウントするSQLCTE
(cteを使用して)テーブル内の子をそのようにカウントして、親レベルで子を含むすべての子の数を取得したいと思います。利用できるサンプルはありますか?
vba - ADODBとOracleで「withxas(...)」を実行できないのはなぜですか?
ADODBとOracleを介してwith句を使用してSQLクエリを実行できません。
つまり、次のスニペットが機能します。
ただし、以下は機能しません。実行時エラー3704が生成されます。オブジェクトが閉じている場合、操作は許可されません。
明らかに、これは、より洗練されたクエリで構成される実際の問題の縮小されたデモンストレーションです。
ADODBは、クエリをOracleインスタンスに渡す前に解析し、 with句を理解しないように思われます。とにかく、これに関するどんな助けも大歓迎です。
sql - VBAのSQLエラー
SQL(2005)には、systmでの平均ユーザーログインを計算する次のコードがあります。
ここで問題となるのは、これをExcelのVBAマクロに入れて、strSQL = "QUERY SHOWN ABOVE HERE"引数の特定のセルに結果を取得すると、Excelでエラーが発生することです。
キーワードの近くの誤ったsysntax
言及する価値があるのは、VBAのコードを複数行に分割しないことです。すべてを1行にまとめています。
performance - サブクエリのファクタリングされた一時テーブルにインデックスを作成するにはどうすればよいですか?
一番上にサブクエリの WITH ステートメントがあるクエリがあり、サブクエリでいくつかの CONNECT BY を実行しています。サブクエリには数万行を含めることができ、CONNECT BY 階層の深さに制限はありません。現在、このクエリには 30 秒以上かかります。ファクタリングされたサブクエリ用に作成された一時テーブルに配置するインデックスを指定して、CONNECT BYを高速化すること、または別の方法で高速化することは可能ですか?
sql - 一般的なテーブル式、グラフをトラバースするときに無限再帰を回避する方法は?
単純な加重グラフがあります
これが家族を表し、Aが父親、Bが息子、Cが母親であるとします。Bが大学で勉強していて、Aが彼のためにアパートを購入したとしましょう。AはCと一緒に、50-50の一般所有の家に住んでいます。
Aから始めて、グラフをツリーに変換したいと思います。
- AはCが住んでいる場所の50%を所有しています
- AはBが住んでいる場所の100%を所有しています
- CはAが住んでいる場所の50%を所有しています
グラフと生成されたツリーはより複雑になる可能性がありますが、より一般的な図が得られることを願っています。
SQLServer2005では
そして、次の一般的なテーブル式を使用して、「A」から始めてグラフをトラバースしています。
これは〜をひき起こす
コメントを外して再帰のレベルを制限するとAnd b.Level<=1、期待どおりの結果が得られますが、実際の使用には明らかにあまり役立ちません。
上記の例でエッジ(つまり、FirstVertex、SecondVertexのペア)が繰り返されないように、前の反復を参照する方法はありますか?
sql - SQL Server 2005 での CTE の評価
MS SQL が CTE 内の関数を評価する方法について質問があります。いくつかの検索では、この問題に関連する結果は得られませんでしたが、これが一般的な知識であり、私が時代遅れである場合はお詫び申し上げます. 初めてではないでしょう:-)
このクエリは、私が実際に行っていることの単純化された (そして明らかに動的ではない) バージョンですが、私が経験している問題を示しています。次のようになります。
上記のすべての実行について、次のことが想定できます。
の結果は、
dbo.fnUtil_Random()常に 0 より大きく、渡された引数以下の int 値です。上記で呼び出され@NumEmployeesているため、値 2 を持つため、この関数は常に 1 または 2 に評価されます。の結果
dbo.fnUtil_ParseCriteria(@CustomerIDs, 'int')は、値が 219935 の「int」の基本型を持つ sql_variant を含む 1 列、1 行のテーブルを生成します。
上記の仮定を考えると、上記の式の結果が常に 1 つのレコード (CustomerID と EmployeeID) を含む 2 列のテーブルを生成する必要があることは (とにかく私にとっては) 理にかなっています。CustomerID は常に int 値 219935 である必要があり、EmployeeID は 42 または 43 のいずれかである必要があります。
ただし、常にそうであるとは限りません。期待される単一のレコードを取得することがあります。2 つのレコード (EmployeeID ごとに 1 つ) を取得する場合もあれば、レコードを取得しない場合もあります。ただし、RandomizedCustomers CTE を真の一時テーブルに置き換えると、問題は完全に解消されます。
この行動について説明できると思うたびに、それは意味をなさないか不可能であることが判明するので、なぜこれが起こるのかを文字通り説明することはできません. CTEを一時テーブルに置き換えても問題は発生しないため、CTEへの結合中にCTE内の関数が評価されることに関係があるとしか思えません。どなたか説はありますか?
tsql - サブクエリとしての T-sql 共通式クエリ
次のクエリがあります。
ID でグループ化された異なる行の varchar 値を連結します。しかし、今はそれをサブクエリとして含めたいのですが、解決できないエラーがいくつか発生します。簡単な使用例:
エラー (スペイン語からのおおよその翻訳):
何が間違っているのですか?
sql - SQL:共通テーブル式を使用して親レコードを再帰的に取得します
販売が製品で構成され、製品を複数のカテゴリに分類できる表に従う必要があるとします。これにより、カテゴリは次のような階層構造になります。
テーブル:
質問:
今、私のWebサイトで、特定の販売のカテゴリのみが表示され、カテゴリが販売の製品で満たされるコントロールを作成したいと思います。カテゴリの階層構造も含めたいと思います。したがって、リーフノードがある場合は、再帰的にトップノードに移動します。
したがって、sale1を使用すると、次の結果を持つクエリが必要になります。