2017-04-24 11 views
0

私はビューとテーブルを持っています。ビューでは、Folio#をピックアップしてテーブルから関連するFolioを取得しようとしていますが、関連するFolioを取得するためにビューに再び参加します。SQL - 1つのレコードを2つ結合する

私のクエリは次のようである:

SELECT DISTINCT A.FOLIOID 
       ,A.FOLIOTYPE 
       ,A.NAME 
       ,A.FOLIONUMBER 
       ,B.FOLIOID AS SUBFOLIOID 
       ,B.FOLIONUMBER AS SUBFOLIONUMBER 
FROM VW_FOLIO AS A 
INNER JOIN FOLIOREF B ON B.FOLIOPARENTID = A.FOLIOID 
INNER JOIN VW_FOLIO C ON C.FOLIOID=B.FOLIOID 
WHERE A.FOLIONUMBER='2018-01-01' 

FOLIOREFテーブルは次のようになります

FOLIOID  FOLIOTYPE NAME   FOLIONUMBER SUBFOLIOID  SUBFOLIO 
ad61e75a5bcc DOORS  JOHN BROWN 2018-01-01  bfdbf0bc9f24 2018-03-01 
ad61e75a5bcc DOORS  JOHN BROWN 2018-01-01  fbf4370a4d46 2018-03-15 

私にこの結果を与える:私は質問がどのようになると思います

FOLIOREFID  FOLIOID  FOLIOPARENTID 
1c489c11e8dd bfdbf0bc9f24 ad61e75a5bcc 
ece462200c59 fbf4370a4d46 ad61e75a5bcc 

新しい行を作成するのではなく、2番目のサブフォリオが右の列に表示されるようにします。

私は十分に明確で誰かが私を助けることができると思っています。

****以下試してみてください

FOLIOID  FOLIOTYPE NAME   FOLIONUMBER SUBFOLIO1  SUBFOLIO2 
ad61e75a5bcc DOORS  JOHN BROWN 2018-01-01 2018-03-01 2018-03-15 
+2

あなたが何を求めているのか理解する。あなたの実際の結果を表示したのと同じ方法で、あなたの望む結果を表形式で含めると、実際に役に立ちます。 –

+0

あなたの例では、もっと短いIDを持つことを助けます。 – jarlh

+0

http://www.dofactory.com/sql/subqueryこれはあなたが探しているものだと思います –

答えて

0

*****下に取得/私がやろうとしているかを示すためにポストを編集:私は*私がかもしれない*だと思う

SELECT DISTINCT A.FOLIOID 
       ,A.FOLIOTYPE 
       ,A.NAME 
       ,A.FOLIONUMBER 
       ,B.FOLIOID AS SUBFOLIOID 
       ,B.FOLIONUMBER AS SUBFOLIONUMBER 
       ,NVL(D.FOLIOID,'') AS SUBFOLIOID 
       ,NVL(D.FOLIONUMBER,'') AS SUBFOLIONUMBER     
FROM VW_FOLIO AS A 
INNER JOIN FOLIOREF B ON B.FOLIOPARENTID = A.FOLIOID 
INNER JOIN VW_FOLIO C ON C.FOLIOID=B.FOLIOID 
LEFT JOIN FOLIOREF D ON D.FOLIOPARENTID = A.FOLIOID AND D.FOLIOPARENTID <> B.FOLIOPARENTID 
WHERE A.FOLIONUMBER='2018-01-01' 
+0

NVLが認識されている組み込み関数名ではないことを伝えています。 – sergio089

+0

これは、使用しているSQLによって異なります。 NVL()はOracleの機能です。 MSSQLではISNULL()を使用します。関数COALESCE()は私の最も多くのSQLでサポートされています。しかし、この機能はあなたの文章では必要ではありません。あなたのステートメントでそれを使用する必要はありません – Barkezy

+0

答えを返してくれてありがとうBarkezy。私はあなたが示唆したようにそれを試みましたが、私はまだ2行のレコードを取得しています。私は1行1行を取得したい場合。私は何をしなければならないでしょうか?私は運がなければ結合を修正しようとしています。 – sergio089

関連する問題