問題タブ [sql-view]

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

c# - ストアドプロシージャを使用してビューデータを返す方法

こんにちは友人の要件は、ストアドプロシージャを使用して、ビューからすべての値を返す必要があるということです。

現在、指定されたとおりにテーブルからすべての値を返すストアドプロシージャがあります。

ExpenseViewという名前の2つのテーブルを、次のように結合してビューを作成しました。

ここでの質問は、最初のストアドプロシージャの場合と同様ですが、ストアドプロシージャを使用して、上記のビュー(経費)のすべての列を返すにはどうすればよいですか。最初の手順と同じ方法を使用してみました。ただし、ViewExpenseViewはクエリで識別されません。

歴史、

以前の質問からわかったのですが、ストアドプロシージャでビューを使用するのはよくありません。

ただし、アプリケーションは以下のc#コードを使用して、ストアドプロシージャを使用してデータベースからデータを取得しています。

これを変更するには、コーディングに多大な時間と追加のリソースが必要です。したがって、現在のコード自体を利用できるように、ビュー全体を返す方法はありますか(与えられたプロシージャSuperGas_GetAllEmployees for Tablesで行ったように)。

すべてのあなたの助けをありがとう

編集中...

ここで、フィールドExpense Type、Expense Amount、Expense Date、およびビュー名ExpenseViewでエラーが発生します。

私を助けてください

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

sql - row_number()を使用して一意の列値を持つ行を返すtsqlビューのリファクタリング

データを取得するために使用しているSQLビューがあります。それらを購入した顧客にリンクされている製品の膨大なリストを考えてみましょう。ビューは、リンクされている顧客の数に関係なく、製品ごとに1行のみを返す必要があります。これを実現するためにrow_number関数を使用しています。(この例は単純化されています。一般的な状況は、ある列Xの一意の値ごとに1つの行のみが返されるクエリです。どの行が返されるかは重要ではありません)

ここで、このビューの行の総数が最大100万であり、productViewからselect*を実行するのに10秒かかるとします。productID =10のproductViewからselect*などのクエリを実行すると、同じ時間がかかります。これは、クエリがこれに評価されるためだと思います

これにより、内部サブクエリが毎回完全に評価されるようになっていると思います。理想的には、次のようなものを使いたいです

しかし、これは許可されていないようです。同様のことをする方法はありますか?

編集 -

多くの実験の後、私が抱えている実際の問題は、結合を強制的に1行だけ返す方法です。以下に示すように、アウターアプライを使用してみました。いくつかのサンプルコード。

上記のサンプルセットを使用して、以下の「すべてを取得」クエリ

実行には約1000msかかります。明示的な条件の追加:

同じ時間がかかります。かなり単純なクエリのこの1000msはすでに多すぎて、同様の結合を追加するときに間違った方法(上向き)にスケーリングします。

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

mysql - 複雑なクエリのビューまたはストアド プロシージャ?

複数の (ネストされた) サブクエリを含むやや複雑なクエリがあり、アプリケーション開発者が利用できるようにしたいと考えています。クエリは汎用的であり、データ セットのコレクションに対して計算された値を使用してビューを生成します。開発者は、クエリが返すものから一部のレコードのみを必要とすることが期待されます (つまり、一部のエンティティの ID または日付範囲または一部の結果を制限します)。そのような)。

これを実装するには、次の 3 つの方法があります。

  1. 開発者が各アプリケーションにクエリを埋め込み、必要に応じて独自のWHERE句を追加できるようにします。
  2. 開発者が必要とするすべての条件をパラメーターとして受け入れるストアド プロシージャを作成します (議論のために、予見可能な将来に何が必要になるかを予測できるとしましょう)。プロシージャは複雑なクエリを実行し、それをフィルター処理します。渡されたパラメータに従って。
  3. いくつかのサブビューを持つビューとしてクエリを実装し (MySQL はビューでサブクエリを許可しないため)、開発者にこれをテーブルとして使用WHEREさせ、各アプリケーションに必要なフィルターを適用させるために使用します。現在、いくつかのサブクエリが複数回使用され、サブビューとしてそれらを実行すると重複が防止されるため、3 つの追加のサブビューを検討しています。

より良いパフォーマンスは何ですか?(すべてのインデックス作成がすべてのケースで同等であると仮定します)可能であれば、最悪のシナリオに進みます。

コードのメンテナンスに関しては何が良いと思いますか?

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

dynamic - SQL ビューで句とパラメータを SQL クエリに動的に追加する

SQLサーバーでビューを作成しようとしています。私のクエリは

ここで、where 句にいくつのパラメーターを含めるかわかりません。作成ビューでクエリにパラメーターを動的に追加したい。ユーザー入力に依存します。このシナリオでは、アプリケーションで Linq を使用したくありません。これを行う方法?

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

sql - sysobjects.uid に相当する SQL Server 2008 sys.objects

sysobjects uid2005+ sys.objects(または別の) ビュー からSQL Server 2000 列に相当するものを取得する方法を知っている人はいますか?

すべての参照を削除しているため、このコードを変換しようとしていsysobjectsます。

前もって感謝します、

ケビン

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

mysql - ビューよりも 2 ~ 3 倍高速なクエリの選択

このクエリは単独で実行されます。

完了するまでに約 2.5 秒かかります。ビューに保存して次のように実行すると:

SELECT * FROM viewName;

終了まで7秒かかります。

その理由と、ビューを高速化するにはどうすればよいですか?

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

sql - ビューで使用されるPostgreSQL列を変更する

PostegreSQLを少しリラックスさせたいです。ビューで使用されている列を変更するたびに、ビューを削除し、フィールドを変更してから、ビューを再作成する必要があるようです。追加の保護を放棄して、フィールドを変更してからビューの調整を理解するようにPostgreSQLに指示することはできますか?

明確化: 私はビューが何であるかを理解しています。実際、ビューがサブクエリのようなものであるため、基になるテーブルを変更して、ビューに変更を取得させることができればと思います。

私が次のものを持っているとしましょう:

ビューを削除して再作成せずに、移行スクリプトで次のことを実行したいだけです。

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

sql - コードの複製を回避するためのベストプラクティス?

現在、ビューを変更する必要があります。ビューコードの大部分は次のようになります。

文字列をまとめたコードのチャンクです(コード自体は今のところ重要ではありません。他に50の例があり、コードの複製がたくさんあります)。これで、ビュー内のさらに30個のフィールドに対してまったく同じコードがあり、「My_Tag_」とFieldXだけが変更されています。これがC#の場合は、ヘルパー関数を少し作成します。もちろん、ここで関数を書くこともできます。しかし、これは多くのテーブルやビューなどを備えたより大きなプロジェクトであるため、すぐに数百の関数を使用できるようになります。

今、私はSQLにかなり慣れていません。通常、私の家はOOPの世界です。しかし、コードの複製を回避し、データベースに何百ものヘルパー関数が存在しないようにするためのソリューションが必要ですか?

この場合のベストプラクティスは何ですか?

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

sql - グループ化されたビューの ID 行を生成する

次のような行番号でビューを作成しようとしています:

行が重複してしまいました。SELECT DISTINCTどちらも機能しません。何か案は?

トランザクション テーブル:

WP テーブル:

出力を表示:

出力を表示

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

sql - オラクル。ビューの作成時にストアドプロシージャを実行します

私はview特定のを持っていfieldます。次に、ロジックに応じてこのフィールドを変更する必要があります。このロジックをに実装しましたstored procedure

ここで、このストアドプロシージャを実行したいので、その結果をのに配置する必要がありfieldますview

手順は次のようになります。

したがって、1つの入力パラメーターと1つの出力パラメーターがあります。

view私はこのようなものが必要です: