• ベストアンサー
  • 暇なときにでも

ある複数のフィールドに特定の数字が存在する回数を得たい

複数のフィールドで、指定した数字が入ってる回数を得るSQLの書き方が分かりません。 具体例を書きますと、フィールド名がそれぞれ id,name,kokugo,sugaku,shakai,rika,eigo,created_date となっており、入ってるデータが 1,YamadaTarou,80,100,100,74,100,2009-05-27 となってる場合、このうち「kokugo,sugaku,shakai,rika,eigo」のフィールドに100が入ってる回数を得たいのです(具体例の場合、3を得たい)。 よろしくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数26
  • ありがとう数1

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

  • ベストアンサー
  • 回答No.1
  • yambejp
  • ベストアンサー率51% (3827/7415)

select id,name,(kokugo=100)+(sugaku=100)+(shakai=100)+(rika=100)+(eigo=100) as manten from テーブル みたいのでよいのでは?

共感・感謝の気持ちを伝えよう!

質問者からのお礼

早速の回答ありがとうございます。 無事できました。

関連するQ&A

  • フィールド数が異なるテーブル間の転記と、フィールド追加の順番

    Oracle10で似たようなテーブルAとBがあります。BからAに転記したいのですが、フィールドが正しく対応してインサートするか心配です。 AとBは現在Bの方のみrikaが多くあり、今回新たに一時テーブルBだけsyakaiテーブルを追加して、同じことをさせるのですが、 Aテーブルにkai namae kokugo sansuまで正しく入るかのかお聞きしたいです。 フィールド追加した場合の順番もどうなるか知りたいです。 テーブルA(メイン) kai namae kokugo sansu テーブルB(一時的) kai namae kokugo sansu rika (syakai) BからAへ転記するSQL文 insert into A select kai, namae, kokugo, sansu, rika, syakai where kai = 2;

  • チェックボックスの項目をDBにinsertしたい

    チェックボックスの複数項目をDBにインサートしたいのですが、DBのフィールドを見ると、チェックボックスの値だけ空になってしまいます。 プログラミング初心者のため、基本的なところでつまずいている可能性も高いのですが、正しいコードがわかる方がいらっしゃいましたらご教授ください。 よろしくお願いします。 ■DBの構造 以下のようなフィールド構造にしており、一人につき1行でデータを持ちたいと思っています。 フィールド   name/ mail/comment/kokugo/sugaku/rika/syakai/eigo/・・・ ● 実際のデータの持ち方(以下のようにしたいです。) 例 太郎/ taro@/hello/ 国語/数学/ / /   次郎/ jiro@/ nice/ / 数学/ /社会/ 英語 ※太郎は、国語と数学をチェックボックスで選択 ※次郎は、数学と社会と英語をチェックボックスで選択 ■チェックボックス画面html(一部抜粋) ---- <form action="regist.php" method="post"> 名前:<br /> <input type="text" name="name" size="30" value="" /><br /> メールアドレス:<br /> <input type="text" name="mail" size="30" value="" /><br /> コメント:<br /> <textarea name="comment" cols="30" rows="5"></textarea><br /> 科目<br /> <form name="kamoku" method="post" action="regist.php"> 国語<input type="checkbox" name="kokugo" value="国語"> 数学<input type="checkbox" name="sugaku" value="数学"> 理科<input type="checkbox" name="rika" value="理科"> 社会<input type="checkbox" name="syakai" value="社会"> 英語<input type="checkbox" name="eigo" value="英語"> <br /> ----- ■phpのファイル(regist.php) ※該当部分だけ記述させていただきます。 ---- <?php // $checkboxの中身は配列 $checkbox = $_REQUEST["chk"]; ?> <html> <head> <title>DB登録練習</title> </head> <body> // 選んだ科目を画面に表示させる <tr> <td>科目</td><td><?php for($i=0; $i<sizeof($checkbox); $i++){ print "${checkbox[$i]}<br>"; } ?></td> </tr> // DB登録部分 <?php $name = $_REQUEST['name']; $mail = $_REQUEST['mail']; $comment = $_REQUEST['comment']; $kokugo = $_REQUEST['kokugo']; $sugaku = $_REQUEST['sugaku']; $rika = $_REQUEST['rika']; $syakai = $_REQUEST['syakai']; $eigo = $_REQUEST['eigo']; $del_flag = $_REQUEST['del_flag']; $reg_date = $_REQUEST['reg_date']; $result = mysql_query("INSERT INTO DBpractice(name, mail, comment, kokugo,sugaku,rika, syakai, eigo,del_flag,reg_date) VALUES('$name', '$mail', '$comment','$kokugo','$sugaku','$rika','$syakai','$eigo','0', now())", $conn); if (!$result) { exit('データを登録できませんでした。'); } ---- チェックボックスで選択した複数科目をブラウザ上で表示させるところは上手くできるのですが、DBに挿入するときのみ、科目のみがうまく入りません。(他の項目は挿入されています。) よろしくお願いします。

    • ベストアンサー
    • MySQL
  • データベースへのアクセスエラーについて

    はじめまして!大学でデータベースを学んでいるのですが、以下のプログラムを実行した際、「式の型が一致しません」というエラーが出ます。またアクセスしているテーブルmeiboにはフィールドに,IDと名前shakai,eigoなどのテーブルには,IDと得点(それぞれの科目の名前)がフィールドにあります。 よろしければ、ご回答よろしくお願いいたします。 import java.io.*; import java.sql.*; public class Ex1 { public static void main(String[] args) { Connection conn = null; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn = DriverManager.getConnection("jdbc:odbc:ex1"); Statement stmt = conn.createStatement(); BufferedReader r = new BufferedReader(new InputStreamReader(System.in), 1); System.out.print("学籍番号を入力してください : "); System.out.flush(); String number = r.readLine(); String select = "SELECT * from meibo,kokugo,sansuu,shakai,rika,eigo " + "where meibo.ID=kokugo.ID=sansuu.ID=shakai.ID=rika.ID=eigo.ID"; ResultSet rs = stmt.executeQuery(select); while(rs.getString("ID")!=number) rs.next(); // System.out.printf("%s\t",rs.getString("name")); System.out.printf("%s\t"," 国語 "+rs.getString("kokugo")); System.out.printf("%s\t"," 算数 "+rs.getString("sansuu")); System.out.printf("%s\t"," 社会 "+rs.getString("shakai")); System.out.printf("%s\t"," 理科 "+rs.getString("rika")); System.out.printf("%s\n"," 英語 "+rs.getString("eigo")); stmt.close(); conn.close(); } catch (Exception e) { System.out.println(e); } } }

  • Mysqlで複数テーブルの参照

    Mysqlで複数テーブルの参照 お世話になります。Mysqlについて質問させてください。 現在、それぞれnameとdateとflagの3フィールドをもつテーブルが、2つあります。 もともと別の用途で準備したものなのですが、 2つのテーブルのflagを参照して、1のものだけdate順に並べることが出来るでしょうか? ■テーブル1 -----------------------------  name |  date  |flag| -----------------------------  田中 | 2010-06-01 | 1 -----------------------------  山田 | 2010-09-01 | 1 -----------------------------  田辺 | 2010-10-01 | 2 -----------------------------  田所 | 2010-11-01 | 2 ----------------------------- ■テーブル2 -----------------------------  name |  date  |flag| -----------------------------  加藤 | 2010-10-01 | 1 -----------------------------  佐藤 | 2010-07-01 | 1 -----------------------------  織田 | 2010-12-01 | 2 -----------------------------  斎藤 | 2010-01-01 | 2 ----------------------------- ■求める結果 -----------------------------  name |  date  |flag| -----------------------------  田中 | 2010-06-01 | 1 -----------------------------  佐藤 | 2010-07-01 | 1 -----------------------------  山田 | 2010-09-01 | 1 -----------------------------  加藤 | 2010-10-01 | 1 ----------------------------- 具体的なSQL文でなくとも構いません。参考になるような情報、サイトをご存じでしたら、教えてください。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • Perlテーブル要素の抜粋について

    はじめまして、 わからないことがあるので教えてください;; <table border="1">#1個目 <tr> <th>No</th> <td>1</td> </tr> <tr> <th>名前</th> <td>太郎</td> </tr> <tr> <th>ランク</th> <td>A</td> </tr> </table> <table border="1">#2個目 <tr> <th>住所</th> <td>東京都渋谷...</td> </tr> <tr> <th>電話番号</th> <td>000-0000-000</td> </tr> </table> <table border="1">#3個目 <tr> <th>試験日</th> <th>科目</th> <th>参考資料</th> <th>点数</th> <th>順位</th> </tr> <tr> <td>2015/6/25</td> <td>国語</td> <td><a href="kyouikunet.html"><img src="kokugo.gif" alt="kokugo"></a></td> <td>70</td> <td>12</td> </tr> <tr> <td>2015/8/25</td> <td>数学</td> <td><a href="kyouikunet.html"><img src="sugaku.gif" alt="sugaku"></a></td> <td>80</td> <td>5</td> </tr> <tr> <td>2015/10/25</td> <td>理科</td> <td><a href="kyouikunet.html"><img src="rika.gif" alt="rika"></a></td> <td>75</td> <td>8</td> </tr> <tr> <td>2015/12/25</td> <td>英語</td> <td><a href="kyouikunet.html"><img src="eigo.gif" alt="eigo"></a></td> <td>96</td> <td>2</td> </tr> </table> このような表があり、 $KojinSeisekiTroに入っており その中の テーブル1番目とテーブル3番目の情報の [tb]内の文字列をカンマ区切りで保存したいのですが どのようにするのかわからないです・・・ 例) この表ですと 1,太郎,A 2015/6/25,国語,70,12 2015/8/25,数学,80,5 2015/10/25,75,8 2015/12/25,96,2 . . . 以下、行の最終は不明なので、最後までという形 を、Tro.txtに保存したいです どうかご教示お願い致します;;

    • ベストアンサー
    • Perl
  • MEDIUMINT属性の数値を、一部変更して置換。

    いつもお世話になっております。 MySQL5テーブル内で、 MEDIUMINT属性フィールド(仮にID_CODEという1箇所のフィールドとして・・・)の、 数値990010、990020、992030が、すでに 登録されているレコード3件に対して、 phpMyAdminなどから、 1回(もしくは出来るだけ少ない回数)のSQL文実行で、 頭2ケタの”99”だけを、”91”という値に変更して、 その後の4桁は、元の値を残したままで、 値を置き換えたいのです。 (期待する更新結果:910010、910020、910030) 上記例は、レコード3件だけでしたが、 実際には数百件ある為、 可能な限り、SQL文を利用して一気にデータ内容を 更新したい状況です。 以上になります。 情報をおもちの方がいらっしゃいましたら、 よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • DataTableに特定のフィールドが存在するかどうか調べるには?

    DataTableに登録されているフィールドに、特定のフィールドが存在しているかどうか調べるには、どのようにすればよいでしょうか? dtTable.Columns.Add("TEST1") dtTable.Columns.Add("TEST2") dtTableにTEST1とTEST2のフィールドが登録されていたとして、 Dim tmp As String = dtTable.Rows(0).Item("TEST3"),ToString TEST3のフィールド名で値を取得しようとすると、TEST3の列が登録されていない為、エラーとなります。 そこで、事前にTEST3というフィールドが、DataTableに存在するかどうか調べたいのです。 (ハッシュテーブルのContainsKeyメソッド等のようなものを求めています) お分かりになる方がいましたら、宜しくお願いします。

  • SQL:TIMESTAMPの期間検索を指定するには?

    教えてください。 SQL文で日付期間の検索をしたいです。 フィールド名:tran_dataの値が、 2004/09/01 ~ 2004/09/03 のデータを検索したい。 データはTIMESTAMPで取得されています。 テーブル名:dat_history 【失敗例】 select * from web.dat_history where tran_date = '2004-08-18' 【エラーメッセージ】 日付値のストリング表記が間違っています。

  • ACCESS 以下のようなレコードを抽出するSQL

    ACCESSのデータベースで あるフィールド(フィールドAとします)の値に対して、 別のフィールド(フィールドBとします)の値が1つに決まる データベースがあるとします。 例えば、フィールドAの値が1のレコードは、 どのレコードもフィールドBの値はaである。など このようなデータベースでこのような関係になっていないレコード 例えば、フィールドAの値が1のレコードの中に フィールドBの値がaであるレコードと フィールドBの値がbであるレコードがある。など を抽出するSQLはどのように記述すればよいでしょうか。 テーブル名はTABEL1とします。 次の2つのケースでお願いします。 (1)フィールドAの値が異なればフィールドBの値が異なる場合 例えば、フィールドAの値が1で、フィールドBの値がaであるレコードが ある時、フィールドAの値が1でないレコードの中には、   フィールドBの値がaであるレコードが存在しない場合   (2)フィールドAの値が異なるがフィールドBの値が同じこともある場合 例えば、フィールドAの値が1で、フィールドBの値がaであるレコードが あっても、フィールドAの値が1でないレコードの中にも、   フィールドBの値がaであるレコードが存在する場合 【回答例】(ただし、1,a,bなどの具体的な値は使わないこと) ・フィールドAの値が1のレコードを表示する例 SELECT * FROM TABLE1 WHERE フィールドA=1; ・フィールドAの値が1でフィールドBの値がaのレコードを表示する例 SELECT * FROM TABLE1 WHERE フィールドA=1 AND フィールドB='a'; ・フィールドAの値が1でフィールドBの値がaのレコードと  フィールドAの値が1でフィールドBの値がbのレコードを表示する例 SELECT * FROM TABLE1 WHERE (フィールドA=1 AND フィールドB='a') OR (フィールドA=1 AND フィールドB='b'); この目的は、データベースに問題があり、 問題となっているレコードを見つけて直したいのです。 よろしくお願いします。

  • Microsoft Accessで自動採番をさせたい。

    いつも大変お世話になっております。 アクセスでの質問です。 フィールドに「管理ID」があって、ここに8ケタのコードが自動採番されるようなしくみにしたいと考えています。 この管理IDは8ケタで、採番の仕組みは以下の通りです。 (1)「アイテム分類」というフィールドに入った製品によって頭2桁が決まる。 例)野菜・・・YA   果物・・・KU   鮮魚・・・SE (2)入力しているのが06年07月だったら次の4桁は「0607」になる。 ここまでで、頭の6ケタ「YA0607」などまでが決まる。 最後の2桁は、その月に発生している情報の連番をつけていきたい。 例) 06年07月に1番目に採番されたデータ→YA060701 06年07月に5番目に採番されたデータ→YA060705 という具合に・・・ これにはたくさんの要素がつまっています。 要素(1) 採番するフィールド以外のフィールド(アイテム分類)を見て、頭2文字を決めること。(ただし、規則はありますので、DBで表すことはできます) 要素(2) 現在のDATEから、年と月だけ4桁拾うこと 要素(3) 過去に発生しているレコードを抽出・カウントし、最後の数字の+1になる番号をつける ということです。 上記のようなことが可能なのでしょうか? 分かりましたら、できるだけ具体的に教えてください。よろしくお願いします。m(_ _)m