2011-07-14 22 views
2

私はこれをlinqで簡単に行うことができますが、私は真または偽のテーブルBの2つのフィールド(minrange、maxrange)に基づいて返すストアドプロシージャを作成する必要があります。だから目標はテーブルAからIDを与えられます。テーブルAの範囲値を選択し、この値をテーブルBの2つの範囲と比較します。値が範囲(minrange、maxrange)内にある場合はtrueを返します。ありがとう。SQLデータベースの2つのフィールドに基づいて計算値

+0

tableBに参加する方法はありますか? – Randy

+0

テーブル定義を共有できますか? – Lamak

+0

2つのテーブルの間に外部キーの関係はありますか? –

答えて

0

(外部キーに関して)詳細を知らなくても、この構文は機能するはずです。

1

テーブルAからテーブルBへのレコードを結合できるフィールドがあるとします。「CategoryID」と呼んでいます。試してみてください:

SELECT 
    CASE WHEN TableA.Value BETWEEN TableB.MinValue AND TableB.MaxValue 
     THEN 1 ELSE 0 END 
FROM TableA 
    INNER JOIN TableB ON TableA.CategoryID = TableB.CategoryID 
WHERE TableA.ID = "TheID" 

幸運!

-マイケル

+0

これはビットではなく整数値を返します(真/偽) – Narnian

+0

正しいです。私はそれが本当に問題になっているCASEステートメントだと思ったので、シンプルさのためにキャストをオフにしました。真実か偽かを表現するためのビットの使用は、実際にはいくぶん恣意的です(しかし、私は常にそうしていますが)。その答えを不要なキャストと混同したくありません。 –

関連する問題