2

次の表 (表 1) を作成したいと思います。

CHANNEL    START    STOP    SIGNAL    NOISE
-------------------------------------------
chan1      0        1       A         B
chan2      10       20      C         D
...

次の表から (表 2):

CHANNEL    START    STOP    TYPE      VALUE
-------------------------------------------
chan1      0        1       signal    A
chan1      0        1       noise     B
chan2      10       20      signal    C
chan2      10       20      noise     D
...

テーブル 2 から関連情報を取得し、そこからテーブル 1 を作成するための選択クエリを作成しようとしています。次に、これをビューに変換します。

この時点で私は本質的に迷っています。私は次のことを試しました:

select distinct 
    table2.CHANNEL as CHANNEL_ID
    , table2.START as START_FREQ
    , table2.STOP_FREQ as STOP_FREQ
    , SIGNAL = CASE
      WHEN table2.TYPE = 'signal' THEN table2.VALUE
      END
    , NOISE_OFFSET = CASE
      WHEN table2.TYPE = 'noise' THEN table2.VALUE
      END

from 
    table2

これは興味深い結果をもたらしますが、明らかに私が望んでいるものではありません。これは間違ったクエリであることは理解しています。おそらく結合を使用してこれを行う必要がありますが、そのルートに行ったときにクエリが実行されませんでした。私はここで脳のおならを抱えています。助けていただければ幸いです。ありがとう!

4

1 に答える 1

3

あなたはこれを探しています:

SELECT
      A.CHANNEL AS CHANNEL_ID,
      A.START AS START,
      A.STOP AS STOP,
      A.VALUE AS SIGNAL,
      B.VALUE AS NOISE
FROM
      table2 as A
      JOIN table2 as B
      ON 
          A.CHANNEL = B.CHANNEL AND 
          A.START = B.START AND 
          A.STOP = B.STOP AND
          A.TYPE = 'signal' AND
          B.TYPE = 'noise'
于 2012-09-11T16:12:32.667 に答える