2011-11-11 8 views
0

[OK]を私 IDのタイトルコンテンツDATEPUBLISH DATEEXPIREDは私のコンテンツテーブルとしてを公開してい私が使用して、これらの条件に基づいて、テーブルのすべてのレコードを表示したいストアドプロシージャ、SQLケースや他の単一のクエリを使用してすべてのレコードを表示する場合

1つのクエリ。

私はテキストボックスとしてdatepublishを持っていますが、textboxとしてdateexpiredはチェックボックスとして公開しています。

1)私がdatepublishに入ると、コンテンツは期限なしに公開されます。

2)私は両方の日付を入力すると、コンテンツがdatepublishに開始され、dateexpiredたときに期限切れになります)私が入力した場合datexpireコンテンツがすぐに公開が開始されますと、それは有効期限

3に達したときに期限切れになります

他の事はある、私はそれは日付をバイパスしますパブリッシュチェックすると

4)という。

単一のクエリを使用してすべてのレコードを表示するにはどうすればよいですか?。(私はカーソルでそれを行うことができています)

+1

私はあなたがまったく試してみたら、別々のクエリとしてどのようにしたのか興味がありますか? – Curt

答えて

1
SELECT * 
FROM Table 
WHERE ((@datePublish IS NULL OR Table.datePublish > @datePublish) 
    AND (@dateExpired IS NULL OR Table.dateExpired < @dateExpired)) 
    OR @published = 1 

あなたの日付の値のいずれかが空の場合、あなたは(そのパラメータのためにあなたのストアドプロシージャにNULLを渡すので、そのパラメータは、結果セットを制限しません)、チェックボックスをオンにすると@published = 1になります。

+0

さて、私は、プロシージャGetAllPublishContentを格納しています。これは、パラメータを取らず、言及した基準に基づいてテーブルからすべての行を返します。 – maztt

+1

パラメータとしてパラメータを渡していない場合、どのように格納されたprocが基準を使用していますか? –

+0

申し訳ありません、私はそれらを取ったものを書いています。事は、基準がないということです。テーブルのデータベースにすべてのレコードがあるだけです。上記のシナリオに基づいて、データリストのすべてのレコードを表示したいだけです。 – maztt

関連する問題