何度もすみませんが、簡素なSQLから徐々に複雑にしていって、どこが悪いかを洗い出していきましょう。
(1)基本形、、、最後のセミコロンを忘れずに
SELECT 商品名
FROM テーブル1;
※テーブルが1個だけの時は テーブル1.商品名 という正式な書き方ではなくて省略可能。
※ここでエラーが出るようであればテーブル1が存在しないか、テーブル1に商品名というフィールドが無いということになります。
(2)テーブル1上のフィールドの値を表示
SELECT 商品名,JAN,在庫数
FROM テーブル1;
※ここでエラーが出るようであればJANあるいは在庫数というフィールドが存在していない。
(3)テーブル2を連結
SELECT テーブル1.商品名,テーブル1.JAN,テーブル1.在庫数
FROM テーブル1
LEFT JOIN テーブル2 ON テーブル1.商品名 = テーブル2.商品名;
※ここでエラーが出るようであればテーブル2が存在しないか、テーブル2に商品名というフィールドが存在していない。
(4)テーブル2のフィールドの中身も表示
SELECT テーブル1.商品名,テーブル1.JAN,テーブル1.在庫数 AS 当月在庫,Nz(テーブル2.在庫数,0) AS 前月在庫
FROM テーブル1
LEFT JOIN テーブル2 ON テーブル1.商品名 = テーブル2.商品名;
※ここでエラーが出るようであればテーブル2に在庫数というフィールドが存在していない。
(5)テーブル3を連結
SELECT テーブル1.商品名,テーブル1.JAN,テーブル1.在庫数 AS 当月在庫,Nz(テーブル2.在庫数,0) AS 前月在庫
FROM (テーブル1
LEFT JOIN テーブル2 ON テーブル1.商品名 = テーブル2.商品名)
LEFT JOIN テーブル3 ON テーブル1.商品名 = テーブル3.商品名;
※ここでエラーが出るようであればテーブル3が存在しないか、テーブル3に商品名というフィールドが存在していない。
(6)テーブル3のフィールドの中身も表示
SELECT テーブル1.商品名,テーブル1.JAN,テーブル1.在庫数 AS 当月在庫,Nz(テーブル2.在庫数,0) AS 前月在庫,Nz(テーブル3.在庫数,0) AS 前々月在庫
FROM (テーブル1
LEFT JOIN テーブル2 ON テーブル1.商品名 = テーブル2.商品名)
LEFT JOIN テーブル3 ON テーブル1.商品名 = テーブル3.商品名;
※ここでエラーが出るようであればテーブル3に在庫数というフィールドが存在していない。
(7)並び替え
SELECT テーブル1.商品名,テーブル1.JAN,テーブル1.在庫数 AS 当月在庫,Nz(テーブル2.在庫数,0) AS 前月在庫,Nz(テーブル3.在庫数,0) AS 前々月在庫
FROM (テーブル1
LEFT JOIN テーブル2 ON テーブル1.商品名 = テーブル2.商品名)
LEFT JOIN テーブル3 ON テーブル1.商品名 = テーブル3.商品名
ORDER BY テーブル1.商品名;
途中でエラーが出ても、まずは(1)~(7)まで順を追って行ってみてください。