以下の社内研修で紹介されていた問題(内部情報につき改題済)が分かりません。
テーブルのデータ毎に(今回はファイル名ごとに)ファイルの更新日をselectすることは可能でしょうか?
(研修環境:SQL Server)
〇問題
以下の市町村のファイルデータを保管するテーブルがあるとする。
SQL
1create table ファイル一覧( 2 町コード char(2) not NULL, 3 サーバ名 varchar(20) not NULL, 4 フォルダ名 varchar(20) not NULL, 5 ファイル名 varchar(20) not NULL, 6 更新日 char(8) not NULL 7)
SQL
1insert into ファイル一覧 values ('AA','SVAA01','FOL1','TEST1.txt','20190401') 2insert into ファイル一覧 values ('AA','SVAA01','FOL1','TEST4.txt','20190402') 3insert into ファイル一覧 values ('AA','SVAA01','FOL1','TEST9.txt','20190402') 4insert into ファイル一覧 values ('AA','SVAA01','FOL2','TEST4.asp','20190402') 5insert into ファイル一覧 values ('AA','SVAA01','FOL2','TEST5.asp','20190402') 6insert into ファイル一覧 values ('AA','SVAA01','FOL2','TEST6.asp','20190402') 7insert into ファイル一覧 values ('AA','SVAA01','FOL3','TEST2.vbs','20190401') 8insert into ファイル一覧 values ('AA','SVAA01','FOL3','TEST3.vbs','20190401') 9insert into ファイル一覧 values ('AA','SVAA01','FOL3','TEST6.vbs','20190401') 10insert into ファイル一覧 values ('AA','SVAA02','FOL1','TEST1.txt','20190401') 11insert into ファイル一覧 values ('AA','SVAA02','FOL1','TEST2.txt','20190405') 12insert into ファイル一覧 values ('AA','SVAA02','FOL1','TEST5.txt','20190405') 13insert into ファイル一覧 values ('AA','SVAA02','FOL2','TEST1.asp','20190401') 14insert into ファイル一覧 values ('AA','SVAA02','FOL2','TEST5.asp','20190401') 15insert into ファイル一覧 values ('AA','SVAA02','FOL2','TEST7.vbs','20190407') 16insert into ファイル一覧 values ('AA','SVAA02','FOL3','TEST5.vbs','20190407') 17insert into ファイル一覧 values ('AA','SVAA02','FOL3','TEST6.vbs','20190407') 18insert into ファイル一覧 values ('AA','SVAA02','FOL3','TEST7.vbs','20190407') 19insert into ファイル一覧 values ('AA','SVAA03','FOL1','TEST2.txt','20190407') 20insert into ファイル一覧 values ('AA','SVAA03','FOL1','TEST5.txt','20190401') 21insert into ファイル一覧 values ('AA','SVAA03','FOL1','TEST9.txt','20190401') 22insert into ファイル一覧 values ('AA','SVAA03','FOL2','TEST2.asp','20190401') 23insert into ファイル一覧 values ('AA','SVAA03','FOL2','TEST5.asp','20190401') 24insert into ファイル一覧 values ('AA','SVAA03','FOL2','TEST9.asp','20190401') 25insert into ファイル一覧 values ('AA','SVAA03','FOL3','TEST1.vbs','20190329') 26insert into ファイル一覧 values ('AA','SVAA03','FOL3','TEST6.vbs','20190401') 27insert into ファイル一覧 values ('AA','SVAA03','FOL3','TEST7.vbs','20190401') 28insert into ファイル一覧 values ('BB','SVBB01','FOL1','TEST1.txt','20190414') 29insert into ファイル一覧 values ('BB','SVBB01','FOL1','TEST7.txt','20190401') 30insert into ファイル一覧 values ('BB','SVBB01','FOL1','TEST9.txt','20190401') 31insert into ファイル一覧 values ('BB','SVBB01','FOL2','TEST2.asp','20190401') 32insert into ファイル一覧 values ('BB','SVBB01','FOL2','TEST8.asp','20190401') 33insert into ファイル一覧 values ('BB','SVBB01','FOL2','TEST9.asp','20190401') 34insert into ファイル一覧 values ('BB','SVBB01','FOL3','TEST2.vbs','20190401') 35insert into ファイル一覧 values ('BB','SVBB01','FOL3','TEST5.vbs','20190401') 36insert into ファイル一覧 values ('BB','SVBB01','FOL3','TEST8.vbs','20190401') 37insert into ファイル一覧 values ('BB','SVBB02','FOL1','TEST1.txt','20190401') 38insert into ファイル一覧 values ('BB','SVBB02','FOL1','TEST7.txt','20190405') 39insert into ファイル一覧 values ('BB','SVBB02','FOL1','TEST2.txt','20190405') 40insert into ファイル一覧 values ('BB','SVBB02','FOL2','TEST4.asp','20190401') 41insert into ファイル一覧 values ('BB','SVBB02','FOL2','TEST5.asp','20190401') 42insert into ファイル一覧 values ('BB','SVBB02','FOL2','TEST7.vbs','20190401') 43insert into ファイル一覧 values ('BB','SVBB02','FOL3','TEST4.vbs','20190410') 44insert into ファイル一覧 values ('BB','SVBB02','FOL3','TEST5.vbs','20190410') 45insert into ファイル一覧 values ('BB','SVBB02','FOL3','TEST6.vbs','20190410') 46insert into ファイル一覧 values ('BB','SVBB03','FOL1','TEST1.txt','20190410') 47insert into ファイル一覧 values ('BB','SVBB03','FOL1','TEST2.txt','20190410') 48insert into ファイル一覧 values ('BB','SVBB03','FOL1','TEST7.txt','20190410') 49insert into ファイル一覧 values ('BB','SVBB03','FOL2','TEST2.asp','20190410') 50insert into ファイル一覧 values ('BB','SVBB03','FOL2','TEST4.asp','20190410') 51insert into ファイル一覧 values ('BB','SVBB03','FOL2','TEST5.asp','20190410') 52insert into ファイル一覧 values ('BB','SVBB03','FOL3','TEST5.vbs','20190401') 53insert into ファイル一覧 values ('BB','SVBB03','FOL3','TEST6.vbs','20190401') 54insert into ファイル一覧 values ('BB','SVBB03','FOL3','TEST9.vbs','20190401') 55insert into ファイル一覧 values ('CC','SVCC01','FOL1','TEST1.txt','20190401') 56insert into ファイル一覧 values ('CC','SVCC01','FOL1','TEST4.txt','20190401') 57insert into ファイル一覧 values ('CC','SVCC01','FOL1','TEST5.txt','20190401') 58insert into ファイル一覧 values ('CC','SVCC01','FOL2','TEST1.asp','20190401') 59insert into ファイル一覧 values ('CC','SVCC01','FOL2','TEST7.asp','20190401') 60insert into ファイル一覧 values ('CC','SVCC01','FOL2','TEST9.asp','20190401') 61insert into ファイル一覧 values ('CC','SVCC01','FOL3','TEST1.vbs','20190414') 62insert into ファイル一覧 values ('CC','SVCC01','FOL3','TEST6.vbs','20190401') 63insert into ファイル一覧 values ('CC','SVCC01','FOL3','TEST8.vbs','20190401') 64insert into ファイル一覧 values ('CC','SVCC02','FOL1','TEST5.txt','20190401') 65insert into ファイル一覧 values ('CC','SVCC02','FOL1','TEST9.asp','20190405') 66insert into ファイル一覧 values ('CC','SVCC02','FOL1','TEST10.txt','20190405') 67insert into ファイル一覧 values ('CC','SVCC02','FOL2','TEST1.asp','20190402') 68insert into ファイル一覧 values ('CC','SVCC02','FOL2','TEST5.asp','20190402') 69insert into ファイル一覧 values ('CC','SVCC02','FOL2','TEST6.vbs','20190402') 70insert into ファイル一覧 values ('CC','SVCC02','FOL3','TEST3.vbs','20190402') 71insert into ファイル一覧 values ('CC','SVCC02','FOL3','TEST5.vbs','20190402') 72insert into ファイル一覧 values ('CC','SVCC02','FOL3','TEST9.vbs','20190401') 73insert into ファイル一覧 values ('CC','SVCC03','FOL1','TEST4.txt','20190401') 74insert into ファイル一覧 values ('CC','SVCC03','FOL1','TEST5.vbs','20190401') 75insert into ファイル一覧 values ('CC','SVCC03','FOL1','TEST8.txt','20190401') 76insert into ファイル一覧 values ('CC','SVCC03','FOL2','TEST1.asp','20190401') 77insert into ファイル一覧 values ('CC','SVCC03','FOL2','TEST8.asp','20190401') 78insert into ファイル一覧 values ('CC','SVCC03','FOL2','TEST10.asp','20190401') 79insert into ファイル一覧 values ('CC','SVCC03','FOL3','TEST1.vbs','20190329') 80insert into ファイル一覧 values ('CC','SVCC03','FOL3','TEST2.vbs','20190401') 81insert into ファイル一覧 values ('CC','SVCC03','FOL3','TEST9.vbs','20190401')
さて、あなたは[フォルダ名:FOL2]のファイルの調査を依頼された。
内容は以下の通りである。
- 全てのサーバの[フォルダ名:FOL2]に存在するファイル一覧を取得する。
(select distinct ファイル名 from ファイル一覧 where フォルダ名='FOL2')
2. サーバの一覧を取得する。
(select distinct サーバ名 from ファイル一覧)
3. (1,2)で取得した情報を用いて、ファイル一覧のそれぞれのファイルが、
各サーバのFOL2フォルダに存在するかを調査する。
下図のような形でデータを抽出するには、どのようなクエリを作成すればよいだろうか。
※ファイルがサーバに存在した場合、ファイルの更新日時を取得すること。(存在しない場合は空白で可。)
例1:TEST7.vbs が SVAA02サーバ の FOL2フォルダ に存在する場合 → 更新日時:20190407 を取得。
例2:TEST7.vbs が SVBB02サーバ の FOL2フォルダ に存在する場合 → 更新日時:20190401 を取得。
回答2件
あなたの回答
tips
プレビュー