image.png

こんなSQLテーマ

みなさん、こんなSQLの仕様書が来た時にどういうSQL組んでますか?
別に上から目線なわけじゃなくて僕が普段デザイナ使ってばっかりだったので手打ち環境(Oracle)になって
よくわかんなくなってたって言うだけの話
(Yahoo知恵袋に書けよって言われるような気もしてくるけどあくまで自分が疑問に思ったことを展開しておけばひょっとするとほかの人の役にも立つかもしれないねという意味でのメモ)←言い訳めいている

最初はこう書いた

SQLメモ
SELECT A.HINBAN FROM ZAIKO AS A
    INNER JOIN HINBAN AS HIN ON A.HINBAN = HIN.HINBAN
    INNER JOIN HINBANLOC AS HINLOC ON A.HINBAN = HINLOC.HINBAN
    INNER JOIN M_LOCATION AS LOC ON HINLOC.LOC_CD = LOC.LOC_CD

気になるところはここ

在庫テーブルとロケーションマスタに対する JOIN なのに、ON のところで品番ロケテーブルとロケーションマスタの、イコール条件を書いてしまっている。ちぐはぐだよね。

SQLメモ
SELECT A.HINBAN FROM ZAIKO AS A
    INNER JOIN M_LOCATION AS LOC ON HINLOC.LOC_CD = LOC.LOC_CD

最終的には

こう書いたんだけど、まだ業務データが読めてないのもあって試行錯誤してた。
あってる、、、よね?(笑)
検索しても意外に出てこないのよね~こういうの
タイトル名は僕が検索したキーワードで書いた

SQLメモ
SELECT A.HINBAN, LOC.LOC_CD FROM ZAIKO AS A
    INNER JOIN HINBAN AS HIN ON A.HINBAN = HIN.HINBAN
    INNER JOIN (
        SELECT HINLOC.HINBAN FROM HINBANLOC AS HINLOC 
        INNER JOIN M_LOCATION AS LOC ON HINLOC.LOC_CD = LOC.LOC_CD
    ) AS LOC
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.