質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

2回答

291閲覧

テーブルのデータ毎に抽出するには?

koboku

総合スコア16

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2019/04/23 17:05

編集2019/04/23 21:58

以下の社内研修で紹介されていた問題(内部情報につき改題済)が分かりません。
テーブルのデータ毎に(今回はファイル名ごとに)ファイルの更新日を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]のファイルの調査を依頼された。
内容は以下の通りである。

  1. 全てのサーバの[フォルダ名: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 を取得。

イメージ説明


気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/04/23 19:21

講師に聞きましょう。 ここで答えを聞いて回答するのは、質問者さんに不利な結果になるのではないでしょうか?
koboku

2019/04/23 21:44

コメント頂きありがとうございます。 本問題は、研修の応用問題として紹介されていたものからデータ等を変えた上で投稿しております。 テーブル名や列名、それぞれの列の値は架空値を使用しており、ここから業務内容を特定されることは無いと思っております。 また、理解に余裕のある人向けに紹介されていた問題でして、講師の方で特に解答を用意しているわけではないとのことです。 以下の簡単なヒントはありましたが、先週金曜日から考えても思いつかなかった次第です。 select 町コード サーバ名, case isnull(select文," ") when " " then "" else 更新日 as TEST1.asp, .... case isnull(select文," ") when " " then "" else 更新日 as TEST9.asp from ファイル一覧
m.ts10806

2019/04/23 21:49

create table / insertなどコードブロック冒頭に書かれていますが「言語名」を記載する場所ですのでSQLとするのが使い方としては合致します(言語ハイライトもつきます)
koboku

2019/04/23 21:59

ありがとうございます。 コードブロック名を修正いたしました。
sazi

2019/04/23 22:19

クロス集計をヒントに頑張ってみてそれでも分からなければ、その内容を具体的にした質問でお願いします。
guest

回答2

0

各サーバーにあるファイルとは何ぞや?(text?データベース、XML、レジスターのある中身?、その他形式?)であれば、sqlとファイルを検索するプログラムが必要では?

投稿2019/05/22 00:52

akirafudo6

総合スコア341

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gentaro

2019/05/22 00:56

質問文を読む限りデータ項目の事を指しているんであって、物理的なサーバーとは無関係じゃないですかね。
akirafudo6

2019/05/23 09:04

だとすると、この程度のことは自分で考えるべきだね!解らなければ、もっと初歩的なsqlから勉強したほうがいい(参考書を購入するとか)でないと、自分の為にならないしなんの力もつかない!
guest

0

ベストアンサー

SQL ServerならPIVOT句を使えば良いんじゃないでしょうか。

投稿2019/05/18 20:13

gentaro

総合スコア8949

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問