実は、AccessのSQL文とBaseのSQL文には、ちょっと違いがあります。
Baseというよりは、標準で使う設定となっているHSQLDBとの違いですが。
例えば、
Accessで以下のように書くSQLは、
SELECT PREF_CD, PREF_NAME FROM T01Prefecture;
HSQLDBだと以下のように書きます。
SELECT "PREF_CD", "PREF_NAME" FROM "T01Prefecture"
Baseで実行した画面
違いは、
・テーブル名、フィールド名を「"」ダブルクォーテーションで囲むこと
・最後の「;」セミコロンが無いこと
などです。
別の例を見てみましょう。
Accessの場合
SELECT ZIP_CODE, Count(ZIP_CODE) AS CNT
FROM T03Town
GROUP BY ZIP_CODE;
HSQLDBの場合
SELECT "ZIP_CODE", COUNT( "ZIP_CODE" ) AS "CNT" FROM "T03Town" GROUP BY "ZIP_CODE"
SQL文を改行しないこともポイントです。
ただし、Baseのクエリーでツールボタンの「SQLコマンドを直接実行」をOFFにしてから実行すると、Accessと同じ書き方でも可能です。
学習に便利な方法なので、試してみてください。
またHSQLDBでは、演算に「&」(アンパサンド)が使えないので、「+」を使います。
以下のSQL文なら、HSQLDBでも実行可能です。
SELECT TOWN_CD,T03Town.CITY_CD,
CITY_NAME + TOWN_NAME AS ADDRESS
FROM T03Town,T02City
WHERE T03Town.CITY_CD = T02City.CITY_CD;
これをHSQLDB風に書くと、
SELECT "T03Town"."CITY_CD", "T03Town"."TOWN_CD", "T03Town"."TOWN_NAME", "CITY_NAME" + "TOWN_NAME" FROM "T03Town", "T02City" WHERE "T03Town"."CITY_CD" = "T02City"."CITY_CD"
となります。