1

私のデータベース テーブルは次のようになります。

ID | INDEX | Value |
1  |   0   |   3   |
1  |   1   |   5   |
1  |   2   |   7   |
2  |   0   |   4   |
2  |   1   |   6   |
2  |   2   |   2   |

出力を次のように表示したいのは、インデックスに基づく値列の違いです。つまり、値(id = 2、インデックス = i)-値(id = 1、インデックス = i)なので、出力テーブルは次のようになります

INDEX | Delta Value |
  0   |     1       |
  1   |     1       |
  2   |    -5       |

この問題を解決するための私の試みは次のとおりです。

SELECT Top 6
    col1.value column1,
    col2.value column2,
    col2.value - col1.value
FROM My_Table col1
INNER JOIN  My_Table col2
    ON col1.index = col2.index 
WHERE col1.id = 1 
    OR col2.id = 2

このクエリには問題があることを知っています。しかし、私は欲しい出力を生成できませんでした。どんな助けでも大歓迎です。

4

3 に答える 3

0

私のを見てください

 select t1.[index],
    t2.value-t1.value
 from my_table t1 inner join my_table t2
 on t1.[index] = t2.[index]
 where t1.id = 1 and t2.id = 2
 order by t1.[index]
于 2013-10-09T19:20:56.357 に答える
0

このようなものが欲しいですか?

select
    col1.value column1,
    col2.value column2,
    col2.value - col1.value AS delta
From My_Table col1
INNER JOIN  My_Table col2 
    ON col1.index = col2.index
    AND col2.id = 2 
where col1.id = 1
于 2013-10-09T18:49:16.547 に答える