2011-11-13 1 views
0

私はA.という名前のテーブルを持っています。フィールドには1つのレコードしかありません。これはnumberという名前の整数です。 A.numberレコードを持つビューを作成したいとします。それぞれ、A.numberより小さい数字の1つです。例えば整数のビューを作成しますか?

選択A.number -----> 5

図5のレコード0 1 2 3 4

PSを示すべきである:これは本当の問題は、Iそれを多く簡略化した。実際の問題は、固定期間内の予算を毎日に分割することです。

+0

この宿題はどこかのパズルですか? –

+0

どれもありません。本当の問題。主な問題はより複雑です。私はそれを単純化しました。 – Masoud

答えて

1

これは宿題かもしれないように聞こえるので、コードを完全に提供することには慎重です。

私は質問を解決するためのポインタを与えることができます。各反復が前の反復に1を追加する再帰CTEを使用します。ちょうどあなたが数字をチェックすることがあります場合は> 101あなたは、元のテーブルにビューをキーにスカラサブクエリを使用することができますMAXRECURSIONオプションを設定してください:


WITH numbers (n) AS (
    SELECT 0 UNION ALL 
    SELECT 1 + n FROM numbers WHERE n < (select number from a) -1) 
SELECT n FROM numbers 
OPTION (MAXRECURSION 500) --example 
+0

宿題ではありません。編集された投稿をご覧ください。 – Masoud

+0

あなたの答えを理解できません。ビューの反復? – Masoud

+0

これは宿題ではないことをあなたの言葉でお伺いします。 –

0

もしあなたのテーブルの数2048 <になるとは、SQL Server上にあるだろう、これはあなたのために動作します:

あなたは上限を必要とする、またはしている場合は、アプリケーションに合わせて適切なサイズを使用して独自の番号表を作成することを検討可能性が代わり
CREATE VIEW MyView AS 
    SELECT number 
    FROM master..spt_values 
    WHERE type = 'p' 
     AND number < (SELECT value FROM yourTable) 

これがあなたに提供されているSQL Server上ではありません。 Hereは、「Numbersテーブル」を便利にするという考えに対するブログ記事へのリンクです。

関連する問題