【SQL】今日のお仕事の収穫
- すばひ
- 2020年3月12日
- 読了時間: 2分
今日はくっそ久々にSQLを考える機会に恵まれまして、とても楽しかったです。
さて、ここに来て全く意識していなかったんですが、DATE型ってあるじゃないですか。いや、その机上の問題で考えればすぐに分かることなんですけど、DATE型ってYYYY/MM/DDだけじゃないんだなってのを初めて実感しました。
同一日に対して連番が振られてる項目があるんですが、その連番の最大値が欲しいんじゃい!みたいなSQLにする必要があったんですね。で、もうそれをやろうとしてる形跡が見えるのにうまく動いていない、みたいな状態
具体的には同一テーブルを日付で結合してWHERE [Aテーブル連番項目] = [A'テーブル連番項目最大値]みたいな条件で抽出しようとしてたんですね。それが機能してないときたもんで私も悩ませたんですが、まずは日付でGROUP BYをしてみたんですね。
そしたら
日付 : 連番
2020/3/12 : 1
2020/3/12 : 2
って表示されたんですよ。
目から鱗落ちて失明したのかと思いましたね。
えー、久々に頭使ったんですが全くわからなかったので先輩に聞いたら、
DATE型は時間もあるでよ、と鶴の一声で解決しました。
あいやびっくり。超恥ずかしかったですね。
で、じゃあ時間もあるならどうすんの、どうやって結合すんのってところは流石に自分で考えましたがもうこんなのお茶の子さいさいですよ。ドヤ顔でTO_CHARしました。
いや、TO_CHARとNVL滅茶苦茶便利っすね。
好きになっちゃいそう。
別件ですが今日は他にも全く関与していないプログラムの修正をやることになったんですが、
①テーブルから値を取得する。
②変数に値を代入する。
って手順のところの修正だったのですが、私が修正しないといけないのは値です。
値の書式を変更する必要があったんですが、私何食わぬノー思考で②のタイミングの値を変えちゃったんですよね。
でもこれって①のタイミングから変更しておくべきなんだろうなぁって終わってから悩みました。こういうことを気軽に聞きたいなぁ。
ではでは、アデュッ
Comentarios