前提・実現したいこと
AccessVBAでサブクエリを使ったSQLで条件にあった値を取得したいです。
発生している問題・エラーメッセージ
行間比較して高値と前日高値の値を比較して
高値 > 前日高値
が成立するレコードを取得したいのですが、サブクエリを使ってその中で仮想テーブルのようなものを作っているのでうまく条件式が書けません。
該当のソースコード
AccessVBA
1Private Sub データ取込_Click() 2 Dim strSQL As String 3 strSQL = "INSERT INTO ドル円累積(日付け,高値,前日高値) " & _ 4 "SELECT 日付け, 高値" & _ 5 ", (SELECT 高値 " & _ 6 "FROM ドル円 AS 前日ドル円 " & _ 7 "WHERE 前日ドル円.日付け = (ドル円.日付け - 1) " & _ 8 ") AS 前日高値 " & _ 9 "FROM ドル円 " & _ 10 "ORDER BY 日付け DESC" 11 12 CurrentDb.Execute (strSQL) 13 14 15End Sub 16
試したこと
サブクエリのWHERE文の後ろに
AND ドル円.高値 > 前日ドル円.前日高値
最後のFROMの後ろに
WHERE ドル円.高値 > 前日ドル円.前日高値
など試したのですが、パラメーターが取得できません。
などと表記されてしまいます。
詳しい方いらっしゃいましたら、ご教示ください。
よろしくお願いいたします。
前日より高値になったものだけ追加したいという事ですか?
その場合、前日が無いものも含みますよね?
sazi様
本当にいつもありがとうございます(涙)
>前日より高値になったものだけ追加したいという事ですか?
まさにです。これから条件式を何個か追加して、trueになった値を追加していきたい。と考えているのですがサブクエリだと書き方が分からなくて困っております。
ひとつでもこのような条件式の書き方(書く場所)が分かれば、応用すればいけそうだな!と感じているのですが、調べてもピンポイントにハマる内容が出てこずに困っております。
>その場合、前日が無いものも含みますよね?
こちらに関しては、日付けだと空欄が出てしまうので後々連番を振ってそちらを基準にして空白が開かないようなものを想定しておりますが、今回はIS NULLで教えていただきたいです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
