プロが教えるわが家の防犯対策術!

いつも大変お世話になっております。
下記のSQL分をエクセルの標準モジュール
に記入して実行いたしましたが、
区切り記号が正しくないと表示されてしまいます。
添付ファイルのように実行したのですが
やり方わかる方おしえて頂けませんでしょうか。

strSQL = " "
strSQL = strSQL & " select b.tokuisaki,b.uriage,b.YYYYMM , " _
& "from (select AVG(uriage) as heikin from tokuisaki) a,tokuisaki b , " _
& " where a.heikin < b.uriage"

「SQL 副問い合わせ」の質問画像

質問者からの補足コメント

  • つらい・・・

    かなり、ためてみましたが、
    何十回もひとつひとつ自分で
    試しましたが、さすがに根負けしました。
    よろしくお願いいたします。

      補足日時:2019/11/16 22:56

A 回答 (4件)

前も書いたと思うのですが


○strSQLに実際どんなSQLができあがるのか、確認しましたか?
○確認したとしたら、あなたが考えたSQLと同じしたか?



既にありますが、strSQLの内容を確認すると次のようになります。

select b.tokuisaki,b.uriage,b.YYYYMM , from (select AVG(uriage) as heikin from tokuisaki) a,tokuisaki b , where a.heikin < b.uriage

これが「考えた通り」のSQLなら、「考えたこと」が間違っています。
SQLを勉強しなおして、正しいSQLにしましょう。

「考えていたのと違う」なら、「考えた通り」になるように変更します。
VBAを勉強しなおして、正しいSQLにしましょう。


> かなり、ためてみましたが、
> 何十回もひとつひとつ自分で
> 試しましたが、さすがに根負けしました。

例えば、どのように考えて、どんなことを試したのですか?

修正するときは、まずは、どんな方針で修正するかを考えることです。
プログラムは「適当にやってたら治る」というものではありません。
やみくもに試すのは時間の無駄です。疲れるだけです。

今回「区切り記号が正しくない」と出たんですから、「区切り記号」を中心に確認していきます。
当該SQLで、名前や命令等の区切りになっている文字を見ると、ピリオド と カンマ と 空白 があります。
それらの使い方が間違っている、というエラーになっているのですから、そういう区切り文字に注目してSQLを見直す、という方針が立てられます。
    • good
    • 0
この回答へのお礼

いつも大変お世話になっております。
一度できるとできたコードを何回か
練習してこうしたいとかいろいろ出てくるうちに
なんとか少しですができるようになりました。
ありがとうございました。

お礼日時:2019/11/17 22:29

No.1です。



具体的には、

select b.tokuisaki,b.uriage,b.YYYYMM , from (select AVG(uriage) as heikin from tokuisaki) a,tokuisaki b , where a.heikin < b.uriage

こうすると、

・b.YYYYMM ,

だとその先もselect句が続くかと思わせておいてfromになってたり、

・tokuisaki b ,

テーブルの指定が続くかと思わせてwhereが指定されてたり。
    • good
    • 1
この回答へのお礼

いつも大変お世話になっております。
やっとコツをつかみました。
ありがとうございました。

お礼日時:2019/11/17 22:28

strSQL = " "


strSQL = strSQL & " select b.tokuisaki,b.uriage,b.YYYYMM " _
& "from (select AVG(uriage) as heikin from tokuisaki) a,tokuisaki b " _
& " where a.heikin < b.uriage"

こうなのでは?
SelectやFromに区切りをつけたら、その後ろは同じものと見なすのに実際は別の物を指定してるし
    • good
    • 0
この回答へのお礼

いつもありがとうございますわたしみたいなのに付き合ってくれて
今日休みなのでじっくり勉強します

お礼日時:2019/11/17 08:19

>>区切り記号が正しくないと表示されてしまいます。



区切りのカンマがfromやwhereの前という変なところに入っています。
    • good
    • 0
この回答へのお礼

ありがとうございました

お礼日時:2019/11/17 08:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!