カテゴリー別アーカイブ: SQLSERVER、ストアドプロシージャ、クエリ

SQLSERVER パズル63 MINの扱いが難しく理解できない、相関サブクエリ

パズル63 問題文
dataのまとまりで連続しているnumを表示したい。

MINというと結果が1つのはずだが、ある条件になると複数を出力するみたい。
その条件がよくわかっていない。>>わかった。相関サブクエリだと繰り返し実行されるために複数回実行される
MINはたいていGROUPを使っていくつかのまとまり単位で最小値を出力する。つまりまとまりの中で1つだ。
この条件に当てはまらないのは、結合した条件で、結合されていないテーブルとの条件が加わったときに
MINが複数出力されるのかもしれない。がよくわかっていないので、またいつか勉強することにする。

続きを読む

買った書籍 独習C# 新版 |Excel VBA逆引き辞典パーフェクト 第3版  |SQLアンチパターン|確かな力が身につくC#「超」入門

買った書籍 独習C# 新版 |Excel VBA逆引き辞典パーフェクト 第3版  |SQLアンチパターン|確かな力が身につくC#「超」入門

C#は会社で新しい環境の開発をすることになるかもしれず、また覚えなくては。
昔Unityで使ったけど単なる関数を作るレベルでしか使っていない。
C#の基礎だけ学んでも使えるようにはならないのでUnityがC#を使うので自宅でゲームを作ってみるか。

続きを読む

P277_SQL実践入門_前日の株価と比較して上下を示す

P277_SQL実践入門_前日の株価と比較して上下を示す
株価を前日と比較して上下同じを示す

考え方はSELECT句にSELECT句を入れて全体の出力に合わせて比較するというC言語でループを考えている人にとっては理解に苦しむSQLクエリである。
ぐるぐる回すループを使わなくてもSELECTでループみたいなことができることを示した例。

基本のテーブル

内部結語INNERJOIN

MAX

それぞれ
ただし同日は指定していないので、同日は<=としる

比較

SQLSERVER 行を列にする方法

クエリを使って行を列にしたい時がある。
例えば、ある分類の中の複数項目、生徒の教科別、商品分類など。
ただし、以下の方法は列にしたい項目が数十個になると面倒になる。
CASE WHENを使う方法とサブクエリを使う方法がある
続きを読む

SQLSERVER テーブルに存在しない列を作ってデータを表示する

カラムの別名はよく使うけど、存在しない列をSELECT文で追加する