問題タブ [set-based]

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 投票する
2 に答える
244 参照

sql - SQL: order by/partition by クエリで有効な開始日/終了日を戻すことができない

複数のサプライヤーの変更がある ID の有効開始日と有効終了日を返す結果セットを戻したいと考えています。これを行うために、ID、サプライヤーの ID、およびトランザクションが発生した日付を記録するトランザクション テーブルを見ています。IDがサプライヤーを切り替えた場合、古い関連付けを廃止し、新しい関連付けを記録したいと考えています。私の意図は、最新の切り替え日を開始有効日として、null を有効終了日として新しい行を挿入することです。イベントを完了するために、最新の切り替え日が入力された終了有効日で最後の前の行を更新したいと考えています。トランザクションがあるが、ID がサプライヤーを切り替えていない場合、行を無視したい。

私が持っているものは単一の ID で機能しますが、2 番目の ID を追加すると、順序/パーティションが機能しません。

テスト行を生成するスクリプトは次のとおりです。単一の ID で機能する SQL が示されています。

================================================== ================

編集済み

望ましい結果は次のとおりです。

ここに画像の説明を入力

0 投票する
3 に答える
187 参照

sql - SQL でのセットベースの操作の処理

セットベースのロジックをよりよく理解し、作業中のコードを単純化しようとしています。これは私が現在取り組んでいるものの例です(すぐに明らかになる理由により、現在は機能しません):

SELECT例として、ステートメントの条件を満たす行が 200 行あるとします。また、テーブルを変更できないと仮定しuserます。私の質問は、一時テーブルを使用せず、(うまくいけば)WHILEループを使用せずに、他にどのようにこれを処理できるでしょうか?

参照されている SP は、そのSELECTステートメント内の情報を使用する必要があるかなり複雑なストアド プロシージャであることに注意してください。一時テーブルを使用して行ごとに処理することでこれを処理できましたが、バッチで処理できる他のアプローチを理解しようとしています。

0 投票する
0 に答える
85 参照

sql - ビューの各行に対してストアド プロシージャを呼び出すようにベース ソリューションを設定する

データベース ビューで返される各行に対してストアド プロシージャを呼び出し、その行からストアド プロシージャに値を渡したいと考えています。ビュー内のデータには ID 列 (または一意の列) が含まれていないことに注意してください。

カーソルと WHILE ループの使用はお勧めできません。

誰かが共有できる例を持っていますか?

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

ravendb - コレクション内のすべてのドキュメントに配列要素を追加する

私のFooドキュメントには、CustomDataユーザーが構成可能なプロパティを追加するために使用されるコレクションがあります。

これらのプロパティを作成するときに、インデックス作成のためにデフォルト値を追加する必要がある場合があります。

これは私がその目的のために使用しようとしているものです:

これにより、次の HTTP 要求が生成されます。

これは を返します200 OKが、ドキュメントは変更されません。

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

sql - 低パフォーマンス セット ベースのストアド プロシージャ

SQL で次のセットベースのコードを使用して顧客の請求書を計算していますが、40000 レコードで操作を実行するには 3 分かかります!!! 何が問題なのか教えてください???

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

mysql - MySQL: 条件に基づいてテーブルを分割する最速の方法

私は2つのテーブルを持っています:

1) すべてのparameter-idのリストと、 parameter-idが属するパラメーターのセットに関する情報

2) は、parameter-idの一部と、タイムスタンプや値などの追加データを含むデータです。

私はデータ ウェアハウスのようなシステムを設計しています。しかし、事前に計算された値を保存するサマリー テーブルの代わりに (私の場合はあまり意味がありません)、さまざまなレポート スクリプトが結果を取得するために調べなければならないデータの量を減らそうとしています。

table2 にあるすべての行をパラメーターの各セットのテーブルに転送して、最終的にパラメーターのセットごとに 1 つの「集計テーブル」を作成したいと考えています。どのパラメータがどのセットに属しているかが table1 に保存されます。

table1 のすべてのエントリをループして取得@param_id = ...@tablename = ... 、実行するよりも高速な方法はありINSERT INTO @tablename SELECT * FROM table2 WHERE parameter_id = @param_idますか? 「セットベースのアプローチ」は手続き型のアプローチよりも高速(かつ優れている)であると読みましたが、私の場合、それがどのように機能するかはよくわかりません。

どんな助けでも大歓迎です!

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

sql - 文字列検索クエリでの While ループの削除

#itemtempから 1 つのレコードを取得し、その一致からすべてのエントリを見つけてReportCSharp、それらの一致を に挿入するクエリがあります#link_table#itemtemp現在、クエリは 7.5 分で実行されますが、テーブル内の 1458 レコードのみを反復処理するには時間がかかるようです。

WHILEループを削除して、より多くのセットベースの操作に置き換えるにはどうすればよいですか?