はじめに

多量の行が表示されないように、このブログは1コンテンツしか表示されない。ブログアーカイブから、他の記事を捜してくれ。

環境作れし。
・gawk 3.1.5 for Windows をググッて入手。
・gawk.exeをpathの通ったフォルダにぶち込めし。
 (「windows パスを通す」ググッて)
 (面倒なら、C:\windowsにぶち込む)
・環境変数「awkpath」にスクリプトを保存するフォルダを設定。
 (「環境変数 設定 windows」ググッて)
 (面倒なら、C:\windowsに、紹介されているスクリプトぶち込む)

2020年11月20日金曜日

SQLSelectSelectedマクロ動作検証(操作方法)

さて、前記事で公開したSQLSelectSelectedマクロだが、表結合の動作検証もかねて、実際の操作手順を解説するぞ。

手抜き資料なので、見辛さは堪忍してくれ。


初心者向けにSQLを解説しているサイトの、例題表組、SQLをそのままコピペでwebから持ってきて、同一結果がでる事を確認している。

白羽の矢が立ったサイトはココだ、Mochizukiさん、勝手に使って申し訳ない。


web上から例題の表組を任意ワークブックの任意の場所に張り付ける

dogsテーブルownersテーブル
bcdefg
5idnameowner_ididname
61aka11ichiro
72ao22jiro
83shiro13saburo
94kuro4

②れぞれ表組範囲を選択しCTRL+Tを押下しExcelテーブルとする。※表組範囲の選択は、ヘッダ行も含めて選択する

テーブル領域のいずれかのセルを選択すると、Excelメニューに「デザイン」のタブが現れる

左端の「テーブル名」に、SQLで使用するテーブル名称を入力する











同webからSQLをテーブルを設定したシートの任意セルに貼り付ける

SELECT * FROM dogs
INNER JOIN owners
ON dogs.owner_id = owners.id;

本マクロの仕様に合わせ、テーブル名部分全てに"@"を付加する

SELECT * FROM @dogs
INNER JOIN @owners
ON @dogs.owner_id = @owners.id;

⑥⑤のSQLテキストセルを選択した状態で、SQLSelectSelectedマクロを実行

SELECT * FROM [Sheet2$B5:D9]
INNER JOIN [Sheet2$F5:G8]
ON [Sheet2$B5:D9].owner_id = [Sheet2$F5:G8].id;
※⑤のSQLは左記SQLに、内部で変換され実行される

SQLを実行したワークシートデータ有効最下行にSelect結果が展開される

※展開されたSelect結果中の項目名がテーブル名で修飾される場合、Excel参照形式の表記になる。


項目名がみっともないので、テーブル名をasで別名定義し、オリジナルのSQLと同じ表題にする

SELECT * FROM @dogs as dogs
INNER JOIN @owners as owners
ON dogs.owner_id = owners.id;

⑨⑧のSQLテキストセルを選択した状態で、SQLSelectSelectedマクロを実行する

⑩SQLを実行したワークシートデータ有効最下行にSelect結果が展開される


⑪同様にLEFT OUTER JOIN サンプルを実行

SELECT * FROM @dogs as dogs
LEFT OUTER JOIN @owners as owners
ON dogs.owner_id = owners.id;

⑫同様にLEFT OUTER JOIN サンプルを実行

SELECT * FROM @dogs as dogs
RIGHT OUTER JOIN @owners as owners ON dogs.owner_id = owners.id;





0 件のコメント:

コメントを投稿