【ACCESS SQL】サイバイマンを減らすクエリ

記事
IT・テクノロジー

YouTubeでも紹介しています。是非ご覧ください。




SQLをSQLビューから作成を始めると、今までのクエリが無駄に思えてきます。
エイリアスとjoinを利用して、クエリを作成します。


サイバイマンを減らすクエリ

こんにちは。伊川です。
前回は、エイリアスについて解説しました。
しかし、実行するクエリに関しては、3つあります。
この3つのクエリを1発で実行する方法を紹介します。
単純に、INNER JOINと、エイリアスを利用します。
JOINに関しては、下記の記事で紹介しています。
相変わらずですが、競馬ネタであることをご了承ください。



このブログはこんな人にお勧め

ACCESSを勉強している人
クエリを勉強している人
ACCESSにクエリが沢山ある人


このブログを、読み終わるころには・・・・

複数のクエリを作成すると、メンテナンスが困難になります。
SQLを、直で編集するスキルがあれば、複数のクエリを作成することなく、
1つのクエリで実行することができます。




1発のクエリで実行する


1.png

Q_買い目1というもを作成するのに、
Q_指数買い目順位2
Q_指数買い目順位5
上記の2つのクエリが必要となります。

当然、1発で実行できるなら、2つのクエリは不要になるわけです。
この、Q_指数買い目順位2、Q_指数買い目順位5は、MT_数値追加から、派生したものです。

MT_数値追加から、派生したクエリ(サイバイマン)ならば、1発で実行できます。

1発のクエリで実行する 作業手順 その1 見出しの考え方
SELECT ~
FROM~
WHERE~
この形が基本です。

SELECT

ここには、クエリの見出しを書きます。

FROM

2.png


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 テーブルを結合する 

3.png

4.png

WHERE T1.順位=2 AND T2.順位=5;
2位と、5位で抽出するには、このように記載します。

5.png


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個にまとめることができました。


ここがポイント

競馬ネタなので、どうでもいい事なのですが、
3つのクエリが1つになったということが、うれしくい思います。
SQL文を、直接編集することで、痒い所に手が届くような感じになります。
実務でも、痒い所に手が届かず、ヤキモキしていることも、多々あると思います。
そんなときは、サブクエリ、JOIN、エイリアスを利用して、クエリを効率よく作成しましょう。

まとめ

データベースを利用するなら、この程度のクエリは、サクサク書けるようになりたいですね。
千里の道も一歩からではないでが、日々、精進したいと思います。
今回も最後まで読んでいただきありがとうございました。

サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す