• ベストアンサー

SQL文 合計値を出力する

ID  項目CD  評価結果 ------------------------- A   1-1-1   ○ A   1-1-1   ○ B   1-1-1   × C   1-1-1   ○ A   1-2-1   ○ A   1-2-1   ○  B   1-2-1   ○ C   1-2-1   〇 上記のテーブルがあります 評価結果は、○と×があり、項目CDごとに集計を行い、項目CDが同じ場合は、○がいつくあっても1とみなして計算するということをおこないたいです 理想SELECT結果 ID  合計  -------------- A   2   (1-1-1で○が2つあるが、1つとして計算) B   1    C   2     SELECT ID,SUM(評価結果) FROM TABLE GROUP BY ID でIDと合計までは出せました 現在のSELECT結果 ID  合計  -------------- A   4   (すべての○の合計を出力) B   1    C   2   項目CDが同じ場合"○"を1つとして集計するにはどうすればいいのでしょか?

質問者が選んだベストアンサー

  • ベストアンサー
  • qbr2
  • ベストアンサー率50% (62/123)
回答No.1

DB2とかORACLEなら通るはず。 SELECT ID,COUNT(DISTINCT 項目CD) FROM TABLE WHERE 評価結果=○ GROUP BY ID,項目CD ACCESSなら、こっちで。 SELECT ID,COUNT(項目CD) FROM (SELECT DISTINCT ID,項目CD FROM TABLE WHERE 評価結果="○") GROUP BY ID

tiyojisaka
質問者

補足

期待した結果通りできましたありがとうございました。

その他の回答 (1)

  • OKwebb
  • ベストアンサー率44% (92/208)
回答No.2

やり方はいろいろありそうだけど・・・。 select id, sum(評価結果) from (select distinct * from TABLE) as b group by id order by id

関連するQ&A