Access よ!こんなのを「循環参照」と言うのかい?[データベース]
(2021-03-09 15:38:36) by shinoda
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' が循環参照を発生させています。」とエラーになる。
どうも、式(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!!(^^;
※「循環参照」を「環境参照」って間違えてたことにさっき気づきました(^^; 単なる打ち間違いです。
コメント投稿
次の記事へ >
< 前の記事へ
TOPへ戻る
Powered by
MT4i 3.0.8