データベース: 2021年3月アーカイブ

Microsoft Access で、「クエリデザイン」→「SQL ビュー」として直接以下のような SQL を叩くと、

SELECT 
    Format(Uri_day,'mm/dd') As Uri_day,
    Denpyo_no
FROM 
    T_Uriage 
WHERE 
    Denpyo_no = '001002'

なんか、「クエリ定義の SELECT で指定されている別名 'Uri_day' が循環参照を発生させています。」とエラーになる。

20210309_access1.jpg

どうも、式(Format)の中で使っている列名(Uri_day)と同じ名前を、計算結果の別名には使えないようだ。別名を Uri_Uri_Day とかに変えたら上手くいった(笑)。

Excel でも同じようなエラーが出るケースがあるようなので、Microsoft べったりの開発者にとっては「常識」なのかな?
でも、つまりこれって、a = a + 1 とか、そういうことが出来ないっていうのと同じことじゃない?相当変な話やな(笑)

他の DBMS でもこんなことになるっけ?と思い、MySQL で似たようなことをやってみた。

mysql> SELECT
    ->     DATE_FORMAT(cdate,'%m/%d') AS cdate,
    ->     user_no
    -> FROM
    ->     t_user
    -> WHERE
    ->     user_no = 'AB129'
    -> ;
+-------+---------+
| cdate | user_no |
+-------+---------+
| 06/10 | AB129   |
+-------+---------+
1 row in set (0.01 sec)

ならんやん!!正常に実行された。

やっぱ、なんというか・・・Microsoft めぇ~な話やなあ(笑)。Microsoft の「常識」は社会の「非常識」(笑)

※ちなみに、VB.NET のプログラム内から同じ SQL で Access を参照してもエラーにはならない。

おいっ!Microsoft!!(^^;

※「循環参照」を「環境参照」って間違えてたことにさっき気づきました(^^; 単なる打ち間違いです。

このアーカイブについて

このページには、2021年3月以降に書かれたブログ記事のうちデータベースカテゴリに属しているものが含まれています。

前のアーカイブはデータベース: 2020年7月です。

次のアーカイブはデータベース: 2022年2月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら