第54回 !Excelで体験!ド初級からのSQL 21 しゃあ@やっぱりVBAが好き 2023年3月26日 19:56 今後のスケジュールはコチラ投げ銭ページはコチラ登壇者:HiroCom777日時 :2023年3月26日 20時テーマ:Excelで体験!ド初級からのSQL今回はハンズオン!当日利用した資料とExcelファイルは末尾にあります。自己紹介SQLデータベース/RDB/SQLADOハンズオン使用するSQLもテキストに!なんとツールも提供!使い方(実践)まずはファイル選択青いセルにSQL入力する仕様SQLテキストの中から青いセルに貼り付け実行ボタンを押すと結果が表示される。64bit版でエラーになる場合はここをLongPtrに変更使い方解説(資料)SQL_ハンズオン.pptx参照全ての列を読み込む*特定の行を指定するWHERE並べ替えのORDER BY表示列を指定できるDB内情報を使って計算、その結果でフィルターもできる。IIFはADOのSQLで使える関数。結果は文字で返るが、数値に変換する関数もある。複数のテーブルをくっつけて表示リレーショナルデータベースの真骨頂2つのテーブルを総当たりで繋げる交差結合(CrossJoin)。総当たりが全て表示されてしまうが、実際に有効なデータはIDが一致する行だけ。そのため実務でこのまま使うことなない。WHERでIDが一致するものだけを抽出もっといい方法があるのでこれも実務では使わない。SQLが長くなる。エイリアスはSQLを短くできるテクニック。正式にはテーブル名とエイリアスの間にASを書くが今回は省略。これが実務でも有効なInnerJoin交差結合の場合は総当たりでデカイテーブルを作成してしまうため効率が悪い。なのでこっちのほう処理が速い。3つのテーブルをJoinする場合は一つ目の条件を()で括る集計関数もある。Countは*を使うことができる。合計も出来ちゃう!平均もできちゃう!データがNullのレコードは集計対象外列名を指定するとNullのデータが対象外になる。集計した値でWHERE条件指定したい!でもこれはエラーになる!2項と3項が期待する順序と逆なんだねぇ。まず最初に全レコードを対象に平均値を集計する。このように一つの値しか返さないSQLをスカラサブクエリと呼ぶ。このSQLをWHERE条件として記入する。このInnerJoinにもサブクエリを使うことができる。こうすることでテーブルを小さくしたあとにInnerJoinすることで速度向上。結果をグループ化HAVINGはGROUP BYの後に使う。同じ結果になる場合はWHEREで絞るほうが効率が良い。HAVINGは集計関数も使うことができる。※WHEREは集計関数使えない。長っ!でもプログラムで集計するより短っ!LEFT JOIN(LEFT OUTER JOINの略)の場合は、販売実績がない商品も表示する。ツールの中身 ExcelADO解説VBE→ツール→参照設定(事前バインディング)Thisworkbook.Path はマクロファイルがOneDrive上にあるとエラーになるので注意。ExcelデータをADODBとして接続・SQLで抽出するまでの手順抽出結果をシートに出力し、接続を閉じる手順投げ銭・スケジュール今後のスケジュールはコチラ投げ銭ページはコチラ参考サイトSQLボルト宣伝今回の資料(ツール付)20230326_Excelで体験!ド初級からのSQL_資料.zip2.44 MBファイルダウンロードについて ダウンロード 20230326_Excelで体験!ド初級からのSQL_スライドPDF.zip1.33 MBファイルダウンロードについて ダウンロード ダウンロード copy #Excel #VBA #SQL #初級 #VBAの悩みはVBAerに聞け #HiroCom777 21 この記事が気に入ったらサポートをしてみませんか? サポート