• 締切済み

mysql いろんな条件

mysql いろんな条件 下記のようなテーブルより table1 3,60,,,,,テスト1,科目A 4,59,,,,,テスト1,科目B 3,60,,,,,テスト1,科目A 1,80,,,,,テスト1,科目B 3,60,,,,,テスト1,科目A 4,59,,,,,テスト1,科目B 5,23,,,,,テスト1,科目A 5,23,,,,,テスト1,科目B 7,13,,,,,テスト1,科目A table2 1,80,,,,,テスト1,科目B 3,60,,,,,テスト2,科目A 4,59,,,,,テスト2,科目B 3,60,,,,,テスト2,科目A 1,80,,,,,テスト2,科目B 3,60,,,,,テスト2,科目A 4,59,,,,,テスト2,科目B 5,23,,,,,テスト2,科目A 5,23,,,,,テスト2,科目B 7,13,,,,,テスト2,科目A 1,80,,,,,テスト2,科目B ↓ 結果1 テスト1,2,0,3,5 テスト2,2,0,3,5 結果2 科目A,0,0,6,4 科目B,4,0,0,6 現在 select count(*) from table1 where col7 = 'テスト1' and col1 = 1 select count(*) from table1 where col7 = 'テスト1' and col1 = 2 select count(*) from table1 where col7 = 'テスト1' and col1 = 3 select count(*) from table1 where col7 = 'テスト1' and col1 >3 このように1つ1つできていているのですが、 まとめてできる方法を知らないです。 また、1つずつやるとその分時間がかかります。 さらに1つのテーブルのみでしかやり方を知りません。 上記のようなテーブルから 結果1 テスト1,2,0,3,5 テスト2,2,0,3,5 結果2 科目A,0,0,6,4 科目B,4,0,0,6 このようなテーブルにする方法を教えてください

みんなの回答

回答No.3

【ちょいと厳しい指摘だったかも】と反省して 要は、 1、table1で、テスト1という名目で、(col7 = 'テスト1' and col1 = 1)が成立する総数、(col7 = 'テスト1' and col1 = 2)が成立する総数、(col7 = 'テスト1' and col1 = 3)が成立する総数、(col7 = 'テスト1' and col1 > 3)が成立する総数を求めたい。 2、table2で、テスト2という名目で、(col7 = 'テスト2' and col1 = 1)が成立する総数、(col7 = 'テスト2' and col1 = 2)が成立する総数、(col7 = 'テスト2' and col1 = 3)が成立する総数、(col7 = 'テスト2' and col1 > 3)が成立する総数を求めたい。 3、1と2を一つのSQL文で求めたい。 と、考え方を整理してもらうのが、先の指摘の目的。で、ここまで書いたら、もはや書くべきSQL文は見えてきたと思いますよ。 SELECT   "テスト1" AS テスト名,   SUM(ABS([テスト名]='テスト1' And [番号]=1)) AS 1,   SUM(ABS([テスト名]='テスト1' And [番号]=2)) AS 2,   Sum(ABS([テスト名]='テスト1' And [番号]=3)) AS 3,   Sum(ABS([テスト名]='テスト1' And [番号]>3)) AS 4 FROM table1 UNION SELECT   "テスト2" AS テスト名,   SUM(ABS([テスト名]='テスト2' And [番号]=1)) AS 1,   SUM(ABS([テスト名]='テスト2' And [番号]=2)) AS 2,   Sum(ABS([テスト名]='テスト2' And [番号]=3)) AS 3,   Sum(ABS([テスト名]='テスト2' And [番号]>3)) AS 4 FROM table2; >上記のようなテーブルにするには?  それは、無用。だって、SQL文一発だから。まあ、ちょいと厳しい指摘は、その真意を理解されて・・・

回答No.2

【確認】table2には、テスト1はないのでは・・・

回答No.1

【お願い】自分だけが分かっているのは拙い!  まず、テーブル名も列名もなし。で、訳の分からないデーブルをこうしたい。これじゃー、考える気もしない。で、結果の列名も書かなきゃ―。回答者は、イメージできない。少なくとも頭脳明晰でない私にはチンプンカンプンですよ。もうちょっと、回答者がイメージしやすいように問題を整理して再質問をしたがいいですね。それに、求める結果が違うような気がしますよ。

関連するQ&A