菅原道真屋敷跡

これによって何が審らかになるのかは判らないけれども、気になるニュースだったことには違いない。
備忘のために上げておく。

菅原道真、晩年の屋敷跡発掘か 祭祀用遺物も出土 福岡県太宰府市

福岡県太宰府市教育委員会は25日、10世紀初めに都から左遷された菅原道真が過ごした「南館」があったとされる榎社(同市朱雀)境内の発掘調査で、9世紀後半~10世紀前半の掘っ立て柱建物跡や溝跡が見つかったと発表した。溝から、かめに坏(つき)を重ねて入れた祭祀(さいし)用とみられる遺物も出土。市教委は「菅公(道真)がこの地で最晩年を過ごした時期(901~03年)と重なる注目すべき遺構」としている。(西日本新聞)


なお、ここには引用しなかったけれども、記事中で『菅家後集』に「かんけごしゅう」という読み仮名が付いていた。
[ 2016/08/26 22:09 ] 歴史 | コメント(0) | TB(0) |  TOP△

日付型の変換など

ひとつ書いたから、ついでにもう少し書いておく。あくまでも自分の備忘用だから、そんなにネタがあるわけではない。

簡単なんだけれども、すぐに忘れてしまってその都度検索してしまうSQLのメモ。
日付形式の変換あれこれ。

--現在日付・時刻を取得
select getdate() --'2016-08-24 00:00:00.000'

--現在日付を取得
select CONVERT(date,getdate()) --'2016-08-24'

--現在日付をyyyy/mm/dd形式で取得
select CONVERT(NVARCHAR,getdate(),111) --'2016/08/24'

--現在日付をyyyymmdd形式で取得
select CONVERT(NVARCHAR,getdate(),112) --'20160824'

--現在月をyyyymm形式で取得
select CONVERT(char(6),getdate(), 112) --'201608'

--前月月初日付を取得
select DATEADD(MM, DATEDIFF(MM, 0, GETDATE()) - 1, 0) --'2016-07-01 00:00:00.000'
select CONVERT(date,DATEADD(MM, DATEDIFF(MM, 0, GETDATE()) - 1, 0)) --'2016-07-01'

--当月月初日付を取得
select DATEADD(MM, DATEDIFF(MM, -1, GETDATE()) - 1, 0) --'2016-08-01 00:00:00.000'
select CONVERT(date,DATEADD(MM, DATEDIFF(MM, -1, GETDATE()) - 1, 0)) --'2016-08-01'

--前月月末日付を取得
select DATEADD(MM, DATEDIFF(MM, -1, GETDATE()) -1, -1) --'2016-07-31 00:00:00.000'
select CONVERT(date,DATEADD(MM, DATEDIFF(MM, -1, GETDATE()) - 1, -1)) --'2016-07-31'

--前月月初日付をyyyy/mm/dd形式で取得
select CONVERT(NVARCHAR,DATEADD(MM, DATEDIFF(MM, 0, GETDATE()) - 1, 0),111) --'2016/07/01'

--前月月末日付をyyyy/mm/dd形式で取得
select CONVERT(NVARCHAR,DATEADD(MM, DATEDIFF(MM, -1, GETDATE()) - 1, -1),111) --'2016/07/31'

縦持ちのデータを横持ちのデータに変換する

聊か唐突ではあるけれども、SQLについてのメモ。

縦持ちのデータを横持ちのデータに変換するSQL。
やり方を知って、案外簡単なことにちょっと感心したので、備忘のために書き付けておく。
何のことだかさっぱり判らないという方は、EXCELの「形式を選択して貼り付け」→「行列を入れ替える」と似たようなものだと思えばイメージを摑みやすいかもしれない。もとより「かもしれない」程度の例えだが。
もっとも、SQLを知らなかったからと言って日常生活に差し支える恐れは一切ないから、イメージが摑めなくても何の問題もないことは言うまでもないし、もし摑めたとしてもどうということもない。

たとえば、こんなデータがあるとする。

[SAMPLE_tbl]TBL
Sales_NoLine_NoSell_Item
00011いちご
00012みかん
00013なし
00014りんご
00021いちご
00022みかん
00023りんご
00024ぶどう
00031なし
00032ぶどう
00033みかん
00034りんご
00041なし
00042りんご
00043もも
00044みかん
00051もも
00052もも
00053もも
00054もも

伝票0001でいちご・みかん・なし・りんごが、伝票0002でいちご・みかん・りんご・ぶどうが…売れたという情報を縦持ちで持っているテーブル([SAMPLE_tbl])である。
これを、伝票番号([Sales_No])ごとの横持ちのデータとして抽出したい。

こんなものである。

Sales_NoSell_Item1Sell_Item2Sell_Item3Sell_Item4
0001いちごみかんなしりんご
0002いちごみかんりんごぶどう
0003なしぶどうみかんりんご
0004なしりんごももみかん
0005もももももももも

下記のようなSQL文で、抽出することができる。

select
 [Sales_No],
 max(case [Line_No] when 1 then [Item] end) as [Sell_Item1],
 max(case [Line_No] when 2 then [Item] end) as [Sell_Item2],
 max(case [Line_No] when 3 then [Item] end) as [Sell_Item3],
 max(case [Line_No] when 4 then [Item] end) as [Sell_Item4]
from
[SAMPLE_tbl]
group by [Sales_No]


「case [Line_No] when 1 then [Item] end~case [Line_No] when 4 then [Item] end」の部分で、「Sales_No = 0001」を例に言うと、

Sales_NoSell_Item1Sell_Item2Sell_Item3Sell_Item4
0001いちごNULLNULLNULL
0001NULLみかんNULLNULL
0001NULLNULLなしNULL
0001NULLNULLNULLりんご

というデータが抽出される。
それを「Sales_No」でgroup化して「Sell_Item1~4」のmaxを取ると、値の入っているものが取られて(NULLが省かれて)上記のようなデータになるわけである。

なるほどな、と思った次第。

千代の富士

元横綱・千代の富士死去…「ウルフ」優勝31回

大相撲で歴代3位の31度の幕内優勝を誇り、「小さな大横綱」と呼ばれた第58代横綱千代の富士の九重親方(本名・秋元貢(みつぐ))が31日午後5時11分、膵臓(すいぞう)がんのため都内の病院で死去した。61歳だった。


少々時宜を逸した感はあるけれども、記載しておく。
言うまでもない、昭和の大横綱だった。
[ 2016/08/04 22:49 ] | コメント(0) | TB(0) |  TOP△