- - PR -
DAOでの集計関数の使い方 (C#)
1
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-04-18 12:00
いまさらですが、DAOの集計関数「MAX」の使い方を
いまいち解りかねています。以下、簡易ソースですが、 public DAO.Workspace wk; public DAO.Database db; public DAO.Recordset rs; ・ ・ ・ private void DBOpen(string path) { wk = new DAO.DBEngineClass().Workspaces[0]; db = wk.OpenDatabase(path, false, false, ""); string tbl_name = "SELECT MAX([過去データ]) as [MaxData] FROM データ"; rs = db.OpenRecordset(tbl_name, DAO.RecordsetTypeEnum.dbOpenDynaset, DAO.RecordsetOptionEnum.dbConsistent, DAO.LockTypeEnum.dbOptimistic); Console.WriteLine(rs.Fields["MaxData"].Value); } としても、取得結果が「NULL」の状態となります。何を間違っているのでしょうか? 集計関数以外のSQL文は問題なく動作しているのですが・・・ どなたかご教授願いたく。 | ||||||||
|
投稿日時: 2005-04-18 13:18
NULLを含む演算はNULLになります。[過去データ]に一つでもNULLのデータがあると、MAX([過去データ])の結果もNULLになるわけですが、そういうことではない?
| ||||||||
|
投稿日時: 2005-04-18 13:30
お返事有難う御座います。 レコードには全て値が設定されています。SQL文は問題ないと思うのですが、SQL文を発行 した後のデータの取り出し方に問題があるように感じています。 正直、解りかねています(+_+)。 | ||||||||
|
投稿日時: 2005-04-18 14:07
で過去データの最大値につけた列名が"[MaxData]"ですよね? だとしたら、下のロジックでしているする列名は"MaxData"ではなく、 "[MaxData]"では?
#C#もDAOもよくしらないのですが、SQL的に""で囲めば[]つきの列名が #つけられるので、もしかしたら?とおもいまして。 | ||||||||
|
投稿日時: 2005-04-18 14:19
夏椰さん、お返事有難う御座います。
本当に本当に申し訳ありません。 結果から申しますと、単純なSQL文の発行ミスでした。 WEBに書き込んだのは簡易版のSQLでして、実際はWhere句や日付の範囲指定 を行っていました。その辺りのケアレスミスでした。SQL文は間違っていないとの 思い込みから簡易表示したわけです。 お時間を取らせて本当に申し訳ありませんでした。 >#C#もDAOもよくしらないのですが、SQL的に""で囲めば[]つきの列名が >#つけられるので、もしかしたら?とおもいまして。 よく知らない状態での前向きなレス、本当に感謝です。 有難う御座いました(_ _) | ||||||||
1
