タグ別アーカイブ: SQLSERVER

SQLSERVER パズル63 MINの扱いが難しく理解できない

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

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

続きを読む

SQLSERVER勉強中、SQL実践入門P255成績のところ 行を列に

/*
SQL実践入門P255成績のところを勉強中
*/
生徒に対して、複数の教科があり、生徒の教科の点数が複数存在するので、生徒に対して、横に複数教科が存在するようにしたい。
つまり、行を列に変換したいときにどうするか。
続きを読む

IISのログ記録アイコンがない|ClassicASPでDB接続ができない

IISのログが出力されていなかったWIN10 ログ記録アイコンがない

・結論

コントロールパネルのWindows の機能の有効化または無効化にて
状態と診断のチェックを入れてインストールする

http://127.0.0.1/hiyoko/stoado01.aspで確認中
サーバ管理マネージャの設定が必要らしい
http://www.putise.com/server/windows-serevr-2008-r2/ii7-w3c-accesslog
でもWin10では
(1)サーバ管理マネージャをダウンロードした
続きを読む

ストアドプロシージャ、テーブルのデータを使って文字を結合して出力したい

/********************************
テーブルのデータを使って文字を結合して出力したい
用途は、テーブルデータを別のサーバのテーブルにインサートしたいときに大量にINSERT文を
SELECT出力のときに文字列として出力したい。
例えば
テーブルデータに
041という文字列があったとして、
「INSERT INTO TEST ([CODE],[NAME])VALUES(041, ‘test01’)」
という文字列をSELECTしたときに出力するというもの。
こういった処理はエクセルのマクロでもできるけど、タブとか空白とかが入り込むので
それを削除する(置換)が面倒だったりする。
結局は、手間がかかるのはどちらも同じなので使いやすい方で出力すればOK

*/
test_tableにCODE,NAMEのカラムが存在する。
INSERT文をテーブルのレコードを使って文字として出力して、別の環境にINSERTしたいとする。
テーブルには以下のデータが入っているとする
ID CODE NAME
1 041 test01
2 041 test02
3 041 test03
4 NULL test04
5 NULL test04

–なぜかカッコと中括弧が正常に表示されてないことがあるので、分解するとうまくいく
–シングルクォーテーションが必要なときは””4つで1つのシングルクォーテーションになる。これは2つが囲みで2つが1つをあらわすので4つで1つ

–出力例、シングルクォーテーションでNAMEカラムを囲った
–INSERT INTO TEST ([CODE],[NAME])VALUES(041, ‘test01’)

CASTでなくて、CONVERTもある
CONVERT(nvarchar(50),文字列)
CAST(文字列 as nvarchar(50))

ついでにINT変換はこんな感じ。文字列、変換、数字