0

これが単純な場合は申し訳ありませんが、ネストされたクエリに常に問題があったため、どういうわけか机に頭をぶつけています。

基本クエリ: Select FILENO, CODE, RECNO FROM DOCUMENT WHERE CODE = 'CODE1' 結果は次の表のとおりです。

FILENO    CODE    RECNO
FILE1     CODE1   13494
FILE2     CODE1   13499
FILE3     CODE1   13597

2 番目のクエリ: Select FILENO, CODE, RECNO FROM DOCUMENT WHERE CODE = 'CODE2' の結果は次の表になります。

FILENO    CODE    RECNO
FILE1     CODE2   13495
FILE2     CODE2   13498
FILE3     CODE2   13600

必要なのは、CODE1 の前に CODE2 が入力されたかどうかを確認することです。結果は、Y または N を含む RESULT 列を持つ最初のテーブルになる可能性があります。

4

2 に答える 2

0

ここでネストされたクエリを使用する理由がわかりません。2つが等しい場合にどうなるかは言いませんでしたが、結合はうまくいくようです。

コード 1 またはコード 2 のいずれかが存在しない場合、レコードは返されません。必要に応じて外部結合を使用できます...

SELECT A.FileNo
     , A.Code
     , A.RecNo
     , CASE when A.RecNo > B.RecNo then 'Y' 
            when A.RecNo < B.RecNo then 'N' 
            else 'Undef' End as isCode1Newer
FROM Document A
INNER JOIN Document B
  on A.FileNo = B.FileNo
WHERE A.Code = 'CODE1'
  and B.Code = 'CODE2' 
于 2016-09-21T20:31:04.413 に答える