0

SQLを使用して、かなり複雑なデータベースをExcelに参照しています。インスタンスごとに4行のテーブルが1つあり、次を使用して、Excelテーブルの同じインスタンスでそれらを4列にすることができました。

Max( case when(table1.column1 = 'a') Then table1.column2 Else 0 End) as [A],

Max( case when(table1.column1 = 'b') Then table1.column2 Else 0 End) as [B],

Max( case when(table1.column1 = 'c') Then table1.column2 Else 0 End) as [C],

Max( case when(table1.column1 = 'd') Then table1.column2 Else 0 End) as [D]

コードの SELECT 部分で。

ここで、作成した 4 つの列すべての値を、参照できる 5 番目の列に追加する必要がありますが、問題が発生し続けます。私はもともと Total = 'A' + 'B' + 'C' + 'D' を試しましたが、列に値を追加する代わりに、すべての行に「ABCD」を含むテキスト列が表示されました。作成された列の値が数値であることを確認しました。

私は基本的に、AS コマンドで作成された列名を他の列で数式の一部として使用する方法を探しています。

4

2 に答える 2

0

ショートとロングの2通り。

短いもの:

SUM(table.column2) as 5thElement

長いもの:

Max( case when(table1.column1 = 'a') Then table1.column2 Else 0 End) +
Max( case when(table1.column1 = 'b') Then table1.column2 Else 0 End) +
Max( case when(table1.column1 = 'c') Then table1.column2 Else 0 End) +
Max( case when(table1.column1 = 'd') Then table1.column2 Else 0 End)

幸運を!

于 2015-10-13T17:30:15.637 に答える