こんにちは、StackOverflow の同僚です。
私は手短に、要点を切り詰めます:
私は Windows XP で C++ を使用し、ADO を使用して MS Access 2007 データベースにアクセスしています。
TypeOfObject と InstaledPower というタイトルの 2 つの列を含む MS Access 2007 のテーブルがあります。
実際のテーブルは次のようになります。
| TypeOfObject | InstaledPower |
-------------------------------
| Type1 | 1000 |
-------------------------------
| Type2 | 2000 |
-------------------------------
| Type3 | 450 |
-------------------------------
| Type4 | 800 |
-------------------------------
| Type1 | 800 |
-------------------------------
次のように、その型の TypeOfObject と sum( InstaledPower ) を表示するクエリが必要です。
TypeOfObject の値が Type1 または Type2 の場合、その値を変更せずにテーブルに表示し、それ以外の場合は OtherTypes としてマークします。結果は次のようになります。
| TypeOfObject | SUM(InstaledPower) |
-------------------------------------
| Type1 | 1800 | <--- 1000 + 800 = 1800
-------------------------------------
| Type2 | 2000 | <--- only one Type2, so it is 2000
-------------------------------------
| OtherTypes | 1250 | <--- sum( InstaledPower ) of Type3 and Type4
------------------------------------
私はこのクエリで試しました:
SELECT TypeOfObject ,
SUM( InstaledPower ) as [SUM(InstaledPower)]
FROM MyTable
group by TypeOfObject ;
しかし、私はこれを取得します:
| TypeOfObject | SUM(InstaledPower) |
-------------------------------------
| Type1 | 1800 | <--- correct
-------------------------------------
| Type2 | 2000 |
-------------------------------------
| Type3 | 450 | <--
------------------------------------- |-- this isn't what I need, see above
| Type4 | 800 | <--
-------------------------------------
SOアーカイブを閲覧してみましたが、同様のものを見つけましたが、何も役に立ちませんでした。
インターネットで検索したところ、この問題はピボット テーブルで解決できるかもしれないという結論に達しましたが、適切に使用する方法がわかりません。その場合、ピボット テーブルがこれを解決できれば、いくつかのリンクが大幅に改善されます。感謝。
他にお手伝いできることがあれば、お尋ねください。喜んでお手伝いします。
助けようとするすべての人に感謝します。