2011-07-05 5 views
0

データベースから日付を選択していますが、通常は4つの異なる日付が使用されています。 しかし、ある日が見つからず、3つの日付しか返しません.C#、asp.netを使用しています。nullのグリッドビューにエラーメッセージを追加しているときに、グリッドビュー内のデータベースからSQLクエリ結果を出力する方法

例1:

 
2010-04-01 00:00:00.000, 
2010-05-01 00:00:00.000, 
2010-06-01 00:00:00.000, 
2010-07-01 00:00:00.000 

例2:

 
2010-04-01 00:00:00.000, 
2010-05-01 00:00:00.000, 
2010-07-01 00:00:00.000 

この結果は、データベースに表示され、不足している月は持つ行を占めメッセージを持っているように、私はそれをしたいです"No entry"のようなメッセージです。

が希望:これを行う方法の

 
2010-04-01 00:00:00.000, 
2010-05-01 00:00:00.000, 
No Entry, 
2010-07-01 00:00:00.000 

任意のアイデア?

+0

どのようにこれらの日付を選択していますか?クエリ自体の内部でそれを行う方が簡単なようです... –

+0

クエリの列数がどのように減少するのか疑問に思うと、 – V4Vendetta

+0

私のクエリは本質的に SELECT DISTINCT [Period_Start] FROM [database] Where [ユーザー] like 'john' ユーザーごとに複数の日付が返されるためです。すべてのユーザーが希望する金額の日付を持っているわけではありません。 3つの日付がありますが、私は4を期待しています。私は、行方不明の行の代わりに「日付なし」というメッセージが表示されるようにしたいと思っています。 – Mac

答えて

-1

完全な結果セット(必要なすべての日付が常に含まれる結果セット)で右結合を行い、左側のデータがnullの場合は、必要なテキストに置き換えます。

このような何か:

選択ケースx.dateがnullでないときに mytableはからx.date他に 'いいえエントリ' 末端が右x.date = c.date

+0

彼が言ったように、すべてのユーザーがすべての日付を持っているわけではなく、完全な結果セットがあるとは思わない... –

+0

それは良い答えです。しかし、日付は月の任意の日から変わる可能性があるので、このケースでは本当に助けにならないでしょう。 ですので、01/01/2011から31/01/2011まで可能です。 日付が正しく記されていることが重要であるため、実際に別の日付を使用して記入することはできませんでした。それが騒がしい場合は注意してください。 SQL照会で日付がNULLでないことを確認する方法はありますか? // [date]がnullでないSELECT DISTINCT [date] // "NO Entry"で置換// FROM [database] このクエリを実行する方法はありますか? – Mac

+0

私はSqlDataReader myReader = cmd.ExecuteReader()を使用しようとしています。 しかし、私は実際にすべての結果を取り出して、再帰的に検索して不足している日付を見つける方法を知りません。 – Mac

0
にcompleteTable Cに参加xは

試用版:

SELECT DISTINCT isnull([Period_Start] ,'NoEntry')) FROM [database] 
+0

あなたはテーブルの中にそれ自身がない行を作ることはできません。これは、日付列を持つ行がnullの場合にのみ機能します – suryakiran

関連する問題