複数の列を返すストアドプロシージャがあります。 colA colB colC .... colL colC/colB <が10%、つまりWHEREフィルタが10%の場合、同じ列を取得するための別のクエリを記述できますか?基本的には、ストアドプロシージャによって返される列と同じ列が表示されるはずですが、今の場合colC/colBは< 10%になるはずです。他のアプリケーションで使用されているストアドプロシージャを変更することはできません。値を取得するだけです。クエリの微調整に関するSQLの質問
答えて
あなたが保存されprocdureの結果セットから直接選択することはできませんので、テーブル変数(@)、または一時テーブル(#)を使用する必要があります。
DECLARE @table TABLE (colA int, colB int, colC int, ...)
INSERT INTO @table
EXEC StoreProcedureName
SELECT * FROM @table WHERE colC * 10 < colB
これはうまくいくはずです。割合とかをやってたからあなたを妨げる
WHERE (colC * 10) < ColB
:私はこのようなWHERE句を追加することをお勧めかもしれません。
あなたのコードで結果をフィルタリングすることもできます。
C/B < 10%
C/B < .1 (convert percentage to decimal)
C < .1B (multiply both sides by B)
10C < B (multiply both sides by 10)
あなたも、あなたが戻りたいパーセントの量のための変数に取るために新しいストアドプロシージャを記述することができます。
ところで...これは私がCOLC/COLB < 10%を変換する方法です。 where句はWHERE(colC * @percentage)になります。< colB
ここでの問題は、インラインSELECT文を使用してストアドプロシージャの結果を取得できないことです。正しい?言い換えれば、あなたは、この文脈では、テーブルのようなストアドプロシージャを扱うことができないため、
SELECT * FROM myProc WHERE (colcC/colB) < .1
しかし、動作しません、を言うことができるようにしたいと思います。
1)このように、一時テーブルにプロシージャの結果をコピーします:
INSERT INTO #myTempTable EXEC myProcedure
この問題に対する最善の解決策は、2つのことを行い、新しいストアドプロシージャを作成することです。
SELECT * FROM #myTempTable WHERE (colC * 10) < colB
(NarnianからCOLC * 10トリックを借用)
01:)このように、あなたが興味を持っている行を選択します幸運を祈る!
ありがとうございます。私はこれを使用してチェックします。 – sreeprasad
- 1. 私のアンドロイドアプリで音質を微調整する方法
- 2. DBArtisanのパフォーマンスの微調整
- 3. 微調整Visual Studioのオープンファイルタブ
- 4. jQuery DataTablesの微調整
- 5. 微調整画像URL apache
- 6. 微調整マルコフ連鎖
- 7. ColorTransformオブジェクトを微調整
- 8. Magentoでレイヤーナビゲーションを微調整する
- 9. SQLクエリの質問
- 10. SQLクエリの質問
- 11. SQLクエリの質問
- 12. SQLクエリの質問
- 13. MySQLのパフォーマンスと変数の微調整
- 14. WindowsでのiPhoneの微調整開発
- 15. SQLクエリ質問
- 16. SQLクエリ質問
- 17. RabbitMQ HAミラーリング同期の微調整。
- 18. SQLモデル/クエリ質問
- 19. ASP SQL Serverクエリの質問
- 20. OracleのSQLクエリ質問
- 21. 微調整全文PDO検索
- 22. SIFRフォント悪夢を微調整!
- 23. SQLの計算に関する質問
- 24. 日時に関するSQLの質問
- 25. SQLクエリ - 再帰的な調整
- 26. Android - カスタムスタイルを微調整するための属性を使用
- 27. WCF RESTにデフォルトJSONシリアライザを微調整する方法
- 28. SQL関数質問
- 29. 複雑なSQLクエリ質問
- 30. SQL SERVERシステムオブジェクトに関する質問
私は問題が保存されていることだと思いますプロシージャーは変更できないため、WHERE句を直接結果に適用することはできません。 –
いい視点ね。そうであれば、あなたのソリューションは機能します。彼が新しいストアドプロシージャを書くことができるなら、彼はこのソリューションを使うことができます。 – Narnian
私はcolC * 10トリックが好きです。さまざまなデータ型の問題をうまく回避します。 –