• ベストアンサー

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

複数のフィールドで、指定した数字が入ってる回数を得る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を得たい)。 よろしくお願いします。

  • MySQL
  • 回答数1
  • ありがとう数1

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

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

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

mihosaku3
質問者

お礼

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

関連するQ&A

  • どこが違うか分かりません

    open OUT, "kekka.dat"; $name1 = "荒木"; $name2 = "井上"; $name3 = "上田"; $name4 = "江口"; $name5 = "小川"; $san = "さん"; $kun = "くん"; %kokugo = (araki =>94, inoue => 73, ueda =>76, eguchi => 69, ogawa =>84); %sugaku = (araki =>81, inoue => 93, ueda =>64, eguchi => 83, ogawa =>74); %eigo = (araki =>89, inoue => 85, ueda =>81, eguchi => 75, ogawa =>87); print %kokugo print %sugaku print %eigo $score[1] = $kokugo{araki} + $sugaku{araki} + $eigo{araki}; $score[2] = $kokugo{inoue} + $sugaku{inoue} + $eigo{inoue}; $score[3] = $kokugo{ueda} + $sugaku{ueda} + $eigo{ueda}; $score[4] = $kokugo{eguchi} + $sugaku{eguchi} + $eigo{eguchi}; $score[5] = $kokugo{eguchi} + $sugaku{eguchi} + $eigo{eguchi}; print $score; print OUT $name1.$kun, $score[1], $score[1]/3; print OUT $name2.$san, $score[2], $score[2]/3; print OUT $name3.$kun, $score[3], $score[3]/3; print OUT $name4.$kun, $score[4], $score[4]/3; print OUT $name5.$san, $score[5], $score[5]/3; close OUT; 教えてください

    • 締切済み
    • CGI
  • データベースへのアクセスエラーについて

    はじめまして!大学でデータベースを学んでいるのですが、以下のプログラムを実行した際、「式の型が一致しません」というエラーが出ます。またアクセスしているテーブル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); } } }

  • チェックボックスの項目を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
  • フィールド数が異なるテーブル間の転記と、フィールド追加の順番

    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;

  • c言語 構造体

    大学での内容なのですが,『名前,数学の点数,英語の点数,国語の点数を格納できる(メンバに持つ)構造体を宣言し,この構造体の配列を用いて,3人分の情報をキーボードから入力後,各科目の平均点を画面に表示するプログラムを作成せよ.』という問題で,自分なりに作ってみたのですがうまくいきません.どなたか教えていただけませんか? 一応自分で作ったものを下に載せておきます. ================================================================ #include <stdio.h> #include <string.h> struct test { char name[20]; int sugaku; int eigo; int kokugo; }; int main(void) { struct test suzuki; int (suzuki.sugaku), (suzuki.eigo), (suzuki.kokugo); strcpy(suzuki.name, "Suzuki"); printf("氏名:鈴木 一馬\n"); printf("数学:"); scanf("%d", &suzuki.sugaku); printf("英語:"); scanf("%d", &suzuki.eigo); printf("国語:"); scanf("%d", &suzuki.kokugo); struct test tanaka; int tanaka.sugaku, tanaka.eigo, tanaka.kokugo; strcpy(tanaka.name, "Tanaka"); printf("氏名:田中 二郎\n"); printf("数学:"); scanf("%d", &tanaka.sugaku); printf("英語:"); scanf("%d", &tanaka.eigo); printf("国語:"); scanf("%d", &tanaka.kokugo); struct test yamamoto; int yamamoto.sugaku, yamamoto.eigo, yamamoto.kokugo; strcpy(yamamoto.name, "Yamamoto"); printf("氏名:山本 三弘\n"); printf("数学:"); scanf("%d", &yamamoto.sugaku); printf("英語:"); scanf("%d", &yamamoto.eigo); printf("国語:"); scanf("%d", &yamamoto.kokugo); printf("数学の平均点は%dです。\n", ((suzuki.sugaku + tanaka.sugaku + yamamoto.sugaku) / 3.0)); printf("英語の平均点は%dです。\n", ((suzuki.eigo + tanaka.eigo + yamamoto.eigo) / 3.0)); printf("国語の平均点は%dです。\n", ((suzuki.kokugo, + tanaka.kokugo + yamamoto.kokugo) / 3.0)); return (0); } ================================================================

  • 合計の出し方

    よろしくお願いいたします。 プログラミングの勉強中です。 国語:78 算数:94 理科:68 社会:70 英語:75 合計点は385点です。 と表示されるプログラムを作り、数字は変えられるようにscanfを使用します。 自分で以下のように作ってみたのですが、合計だけがめちゃめちゃな数で出て来てしまいます。 どこが間違っているか教えていただけますか? #include<stdio.h> main() { int kokugo; int sansuu; int rika; int syakai; int eigo ; int sum = kokugo+sansuu+rika+syakai+eigo; printf("国語:"); scanf("%d",&kokugo); printf("算数:"); scanf("%d",&sansuu); printf("理科:"); scanf("%d,&rika"); printf("社会:"); scanf("%d,&syakai"); printf("英語:"); scanf("%d,&eigo"); printf("合計点は%d点です。",sum); }

  • 構造体についてです。

    typedef struct student{ int id; char name[20]; int kokugo; int sansu; int eigo; }STUDENT; と、 struct student{ int id; char name[20]; int kokugo; int sansu; int eigo; }; の違いはなんでしょう? 私は下記をよく使うのですが・・・。 typedefについて詳しく知りたいです。

  • 複数フィールドの条件について

    SQL文について教えてください。 oracle,mysqlでは、下記の条件分 where (fieldA,fieldB) in (select fieldA,fieldB from TABLE_NAME) と言った条件を記載可能なのですが、SQLServer ではエラーになってしまいます。 違った構文があるのでしょうか?よろしくお願いします。 具体的にやっているSQLは update TABLE_NAME set FIELD_NAME='1' where (FIELDA,FIELDB) in (select FIELDA,FIELDB from TABLE_NAME2 where FIELDC='1')

  • 最新の支払い金額と支払い回数を表示したい。

    以下のテーブルで、それぞれの人の最新の支払い金額とそれぞれの人の支払い回数を求めようと考えてます。 最新の支払い金額、それぞれの支払い回数、と別々には取得できるのですが、一度で取得するSQLは、どう書けばいいのでしょうか? よろしくお願いします。 -テーブル name | amount | created_on A | 340 | 2005/12/01 A | 220 | 2006/05/13 A | 820 | 2008/12/22 B | 400 | 2007/02/13 C | 290 | 2008/12/09 B | 900 | 2009/04/09 -期待する実行結果 name | created_on | times A | 2008/12/22 | 3 | B | 2009/04/09 | 2 | C | 2008/12/09 | 1 | -最新の支払い金額を求める SELECT A.name, A.created_on FROM table AS A WHERE A.created_on = ( SELECT MAX( created_on ) FROM table AS B WHERE A.name = B.name ) ORDER BY A.id -それぞれの支払い回数を求める。 SELECT name, COUNT(*) AS times FROM table GROUP BY name

    • ベストアンサー
    • MySQL
  • 一つのフィールドに複数の情報を持たせたいです。

    データベースに詳しい方!一つのフィールドに複数の情報を持たせたいです。 例えば複数のユーザを管理するテーブルにあるID(フィールド)を 複数個をデータベースに保存する場合どうすればいいのでしょうか? 言語はJavaで、データベースはMySQLを使っています。 ↓↓各フィールド(例) -------------------------- || userName || userID || ○○ID || -------------------------- 上記の 「○○ID」というフィールド に複数の値を持たせたいのです。 String型の配列、もしくはXMLをMySQLの一つのフィールドに保存する 事はできるのでしょうか? (もし出来るのならこちらを採用したいです) それとも○○IDに関連するテーブルを作成する(?) それか最悪の場合、ユーザが増えるたびにテーブルを一つ作成 して管理するか・・・・(避けたいです) 宜しくお願いします。

    • ベストアンサー
    • MySQL