【ACCESS SQL】サイバイマンを減らすクエリ
YouTubeでも紹介しています。是非ご覧ください。
SQLをSQLビューから作成を始めると、今までのクエリが無駄に思えてきます。
エイリアスとjoinを利用して、クエリを作成します
サイバイマンを減らすクエリ
こんにちは。伊川(@naonaoke)です。
前回は、エイリアスについて解説しました。
しかし、実行するクエリに関しては、3つあります。
この3つのクエリを1発で実行する方法を紹介します。
単純に、INNER JOINと、エイリアスを利用します。
JOINに関しては、下記の記事で紹介しています。
相変わらずですが、競馬ネタであることをご了承ください。
このブログはこんな人にお勧め
ACCESSを勉強している人
クエリを勉強している人
ACCESSにクエリが沢山ある人
このブログを、読み終わるころには・・・・
複数のクエリを作成すると、メンテナンスが困難になります。
SQLを、直で編集するスキルがあれば、複数のクエリを作成することなく、
1つのクエリで実行することができます。
1発のクエリで実行する
Q_買い目1というもを作成するのに、
Q_指数買い目順位2
Q_指数買い目順位5
上記の2つのクエリが必要となります。
当然、1発で実行できるなら、2つのクエリは不要になるわけです。
この、Q_指数買い目順位2、Q_指数買い目順位5は、MT_数値追加から、派生したものです。
MT_数値追加から、派生したクエリ(サイバイマン)ならば、1発で実行できます。
1発のクエリで実行する 作業手順 その1 見出しの考え方
SELECT ~
FROM~
WHERE~
この形が基本です。
SELECT
ここには、クエリの見出しを書きます。
FROM
MT_数値追加と、Q_買い目1には、何も共通するものはありませんので、見出しは、考えて作成しなければなりません
SELECT
Left(T1.レースID馬,16) AS レースID
,0 AS 返還フラグ
,4 AS 券種
,Val(Right(T1.レースID馬,2)) AS 軸2
,Val(Right(T2.レースID馬,2))AS ヒモ
,0 AS 空白
,100 AS 購入金額
,Null AS 空白2
,"A" AS 自信
FROM
なぜこのような見出しを作成するかというと、この並びではないと、JRAに自動投票できないからです。
余談ですが、このようなことをやっていると、会社の実務なんてカンタンにこなせるようになります。
自動投票に関しては、妥協は許されません。
しかし、実務に関しては、妥協は許されます。なぜならば、出来ないものは、出来ないからです。
できないモノを、どうやって、出来るようにするのかっていうこと考える事が、スキル向上につながります。
出来る、出来ないは、問題ではありません。
1発のクエリで実行する 作業手順 その2 テーブルを結合する
WHERE T1.順位=2 AND T2.順位=5;
2位と、5位で抽出するには、このように記載します。
FROM
MT_指数追加 AS T1 INNER JOIN MT_指数追加 AS T2
ON Left(T1.レースID馬,16) = Left(T2.レースID馬,16)
1発のクエリで実行する 作業手順 その3 完成のSQL文
SELECT
Left(T1.レースID馬,16) AS レースID
,0 AS 返還フラグ
,4 AS 券種
,Val(Right(T1.レースID馬,2)) AS 軸2
,Val(Right(T2.レースID馬,2))AS ヒモ
,0 AS 空白
,100 AS 購入金額
,Null AS 空白2
,"A" AS 自信
FROM
MT_指数追加 AS T1 INNER JOIN MT_指数追加 AS T2
ON Left(T1.レースID馬,16) = Left(T2.レースID馬,16)
WHERE T1.順位=2 AND T2.順位=5
ここがポイント
競馬ネタなので、どうでもいい事なのですが、
3つのクエリが1つになったということが、うれしくい思います。
SQL文を、直接編集することで、痒い所に手が届くような感じになります。
実務でも、痒い所に手が届かず、ヤキモキしていることも、多々あると思います。
そんなときは、サブクエリ、JOIN、エイリアスを利用して、クエリを効率よく作成しましょう
まとめ
データベースを利用するなら、この程度のクエリは、サクサク書けるようになりたいですね。
千里の道も一歩からではないでが、日々、精進したいと思います。
今回も最後まで読んでいただきありがとうございました。
サンプルファイル
私のホームページでも販売しています。このようなファイルは、全部で、300ファイル前後ありますが、総ダウンロード数は、10,000件を、超えました。10,000件超えてから、面倒なので、カウントしていないです。
勉強したい方、会社の実務で利用したい方にお勧めです。
はっきり言いますが、ネットで調べる時間を考えたら、購入したほうが、時間の節約になります。
まして、ネットのコードは、作動するとは限りません。
料金は、200円です。
よろしくお願いします。
ここから先は
¥ 200
よろしければサポートをお願いします。いただいたお金に関しては、書籍の購入に充て、より良い情報を皆様に提供します。