- PR -

副問い合わせ

1
投稿者投稿内容
まな
常連さん
会議室デビュー日: 2005/10/26
投稿数: 45
投稿日時: 2006-03-23 18:57
こんにちわ。PL/SQLでこのような副問い合わせのselectを使います。
(例)
SELECT * BULK COLLECT INTO m001
FROM
m002
WHERE
m002.ab in (SELECT ab FROM G032 WHERE G032.gh = 'YYY' AND G032.hi = '20060323' AND G032.jk = '2') AND
m002.cd in (SELECT cd FROM G032 WHERE G032.gh = 'YYY' AND G032.hi = '20060323' AND G032.jk = '2') AND
m002.ef in (SELECT ef FROM G032 WHERE G032.gh = 'YYY' AND G032.hi = '20060323' AND G032.jk = '2') AND
m002.gh = 'YYY' AND
m002.hi = '20060323' AND
m002.jk = '1' AND
ORDER BY
m002.ab;

もっとすっきりするような書き方はありますでしょうか?
よろしくお願いします。
platini
大ベテラン
会議室デビュー日: 2002/12/03
投稿数: 193
投稿日時: 2006-03-23 20:19
Oracleの場合

where句以降に

(ab,cd,ef) in ( select xx,yy,zz from hoge where 条件1=)
みたいな複数列の組み合わせのinが通ります。
ゆう
常連さん
会議室デビュー日: 2003/06/27
投稿数: 45
投稿日時: 2006-03-24 09:30
Existsはどうでしょうか?

コード:

Where Exists (
Select *
From G032
Where G032.ab = m002.ab
And G032.cd = m002.cd
And G032.ef = m002.ef
And G032.gh = 'YYY'
And G032.hi = '20060323'
And G032.jk = '2'
)




[ メッセージ編集済み 編集者: 悠 編集日時 2006-03-24 09:39 ]
1

スキルアップ/キャリアアップ(JOB@IT)