@banban_

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

SQL文からDBのテーブル、カラムを知りたい

既存のシステムにDB2があるのですが、仕事の関係でそのDB2にはアクセスは出来ない状態です。
只それ以外のソースは貰っており、テストの為にローカル環境にDB(postgreかSQLite3)を作りたいと思っております。

ソース内にDB2から値を取得しているSQL文があったので、その情報からそのDB2のテーブルやカラムがどの様になっているか理解しそのDB(postgreかSQLite3)をローカル環境に作りたいと思っております。
最終的には、作ったDBにテストデータを入れ、同じSQL文で値を取得したいです。
なのでカラムの制約?等は気にしていません。

本当に初歩的なSQL文(一行、2行)は分かるのですが、SQLあまり触ったことがないので読めきれずテーブル・カラムがどうなっているか分かりません。

ご教授の程をよろしくお願いいたします。

SELECT
d1.date,
d1.t_number,
d2.c_number,
d2.c_name
FROM
(
SELECT
tmp2.FIL_MD,
tmp2.date,
tmp2.t_number,
tmp2.TRHKNO
FROM
(
SELECT
MAX(FIL_MD) as TMP_MD,
t_number
FROM
BK.BTRHK
WHERE
t_number = ?
GROUP BY
t_number
) as tmp1
JOIN
BK.BTRHK as tmp2
ON tmp1.t_number = tmp2.t_number
AND tmp1.TMP_MD = tmp2.FIL_MD
) as d1
LEFT OUTER JOIN
BK.BTRHK_MSI d2
ON d1.TRHKNO = d2.TRHKNO
ORDER BY
d2.FIL_MD DESC

0 likes

3Answer

This answer has been deleted for violation of our Terms of Service.

既存のシステムにDB2があるのですが、仕事の関係でそのDB2にはアクセスは出来ない状態です。
ソース内にDB2から値を取得しているSQL文があったので、その情報からそのDB2のテーブルやカラムがどの様になっているか理解しそのDB(postgreかSQLite3)をローカル環境に作りたいと思っております。

DB2なら、フリー版でもいいので同じDB2でテストするべきです。DBMSは同じ事やる場合でも方言みたいに微妙に書き方が違ったりするので、専用構文が出てきた場合に動きません。(MySQLだとIFNULL、OracleだとNVL使ってたりとか)

また、DBに直接アクセスできないにしても、最低限テーブルの仕様書等はないと話にならないです。そのくらいも交渉できないなら、引き受けない方が無難だと思います。なんか、DBMSならどれも同じやろ~くらいの感覚で進めている時点で、非常に怖い感じがします。

1Like

既存のシステムにDB2があるのですが、仕事の関係でそのDB2にはアクセスは出来ない状態です。只それ以外のソースは貰っており、テストの為にローカル環境にDB(postgreかSQLite3)を作りたいと思っております。

それは意味が無いです。

SQL 文はどんな DB でも同じということはありません。また、フィールドの型も DB によって使えるもの使えないものがあります。

なので、「ローカル環境にDB(postgreかSQLite3)」で期待通り動いても、本番環境の DB2 では動かないことがあります。

1Like

Your answer might help someone💌