問題タブ [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.

0 投票する
9 に答える
463 参照

sql - SQL Elaborate Joins Query

I'm trying to solve the below problem.

I feel like it is possible, but I can't seem to get it.

Here's the scenario:

If I am looking for something having the same attributes as Asset-A, then it should identify Asset-B since Asset-B has all the same attributes as Asset-A (it should discard heavy, since Asset-A didn't specify anything different or the similar). Also, if I wanted the attributes for only Asset-A AND Asset-B that were common, how would I get that?

Seems simple, but I can't nail it...

The actual table I am using, is almost precisely Table2, simply an association of an AssetId, and an AttributeId so: PK: Id
int: AssetId
int: AttributeId

I only included the idea of the asset table to simplify the question.

0 投票する
10 に答える
10433 参照

sql - データにループがあるSQLServer2005再帰クエリ-それは可能ですか?

標準のボス/部下の従業員テーブルがあります。上司(IDで指定)とそのすべての部下(およびそのサブロディネートなど)を選択する必要があります。残念ながら、実際のデータにはいくつかのループがあります(たとえば、両方の会社の所有者がお互いを上司として設定しています)。CTEを使用した単純な再帰クエリはこれを抑制します(最大再帰レベル100を超えました)。それでも従業員を選べますか?私はそれらが選択される順序は気にせず、それぞれが一度だけ選択されるだけです。


追加:私のクエリが必要ですか?うーん...わかりました...私はそれはかなり明白ですが、-ここにあります:


追加2:ああ、はっきりしなかった場合に備えて、これは本番システムであり、少しアップグレードする必要があります(基本的に一種のレポートを追加します)。したがって、回避できる場合は、データを変更しないことをお勧めします。

0 投票する
1 に答える
1172 参照

sql - SQL Server 2005 での SQL クエリの最適化 (CTE + 範囲関数)

そのようなクエリが最適化される可能性があるかどうか疑問に思っています。私はそれを大幅に単純化しました。あなたはそれの核心を理解しています。

それが行うことは、下位の部門を階層的に照会し、それに対して範囲を設定することです。

私は巨大な実行計画に行き着いており、別の方法でそれを行うことができるかどうか疑問に思っています.

ありがとうございました。

0 投票する
2 に答える
2177 参照

sql - SQL 階層データ型でノードを並べ替える

SQL 2008 で Hierarchy データ型を使用します。階層内のノードは次のようになります。

/8/3/ と /8/1/ が入れ替わるようにノードを再配置したいと思います。これを行う方法について何か考えはありますか?

私がこれまでに持っている唯一の考えは、すべてのノードを配列のレベルにロードし、それらを希望どおりに並べ替え、テーブルから削除し、ソートされた形式で挿入することです。

0 投票する
1 に答える
1446 参照

sql - 方法:CTEを使用して非正規化データから正規化されたビューを選択しますか?

これは非常に標準的な初心者の質問ですが、私は小さなコードでこれを行うための専門家の賢い方法を探しています。(手続き型コードとカーソルを使用して、この長い手を行う方法を知っているので、答えのその部分をスキップできます。)基本的に、非正規化データセットがあり、セット処理で正規化テーブルを抽出する必要があります。方法。生データはExcelから取得され、MSSQLからクエリを実行するためのテーブルとして添付します。単一のフィールド(Excel、したがってSQL)には、各製品が参加する部門のコンマ区切りのリストがあります。

データを正規化する必要があることはわかっていますが、Excelから取得されています(ユーザーが正規化するのは現実的ではありません)。各レコードをループする手順(カーソルやステートメントなど)を使用してこれを実行できることはわかっていますが、現在利用可能なツールでは不要のようです。 これらのレコードの「参加者」フィールドを持つ主キーを抽出できる単一のステートメントはありますか?

ソースを次のように考えてください。

ProductIDDepartments
 123      1,3,5,15  
 456      2,4,5,16  

通常のselect*from dbo.split(CommaSepField)を実行しましたが、これは一度に1つのレコードでのみ機能します(テーブル値関数でフィールドの値を指定することはできません。言うまでもなく、これらすべての単一の結果をどのように結合しますかセット?

すべての結果セットを統合することで、共通テーブル式について考えるようになりましたが、(1)展開されたフィールドで主キーを取得する方法、および(2)クエリを機能するようにフォーマットする方法を完全に理解することはできません。

もちろん、出力は次のようになります。

ProductIDDept
 123      1  
 123      3  
 123      5  
 123      15 
 456      2  
 456      4  
 456      5  
 456      16 

StackOverflowとGoogleでこれをかなり調べましたが、当てはまる答えは実際には見つかりませんでした。見逃してしまったことをお詫び申し上げます。リンクを送ってください:D。

0 投票する
7 に答える
277529 参照

mysql - MySQLで「WITH」句をどのように使用しますか?

すべてのSQLServerクエリをMySQLに変換していますがWITH、それらに含まれるクエリはすべて失敗します。次に例を示します。

0 投票する
4 に答える
78072 参照

sql - キーワード「with」付近の構文が正しくありません...前のステートメントはセミコロンで終了する必要があります

私はSQL Server 2005を使用しています。ストアド プロシージャに 2 つの WITH 句があります

しかし、エラーが発生します

キーワード「with」付近の構文が正しくありません。このステートメントが共通テーブル式または xmlnamespaces 節である場合、前のステートメントはセミコロンで終了する必要があります。

私のオプションは何ですか?私が知らないスプリッターはありますか?