sql >> データベース >  >> RDS >> Mysql

ローカルホストリンクからSQLWHEREステートメントの自動更新を取得する方法

    このステートメントを使用して、テストのすべての学生のスコアを取得します。

    SELECT sq.stdid, sq.testid, COUNT(*) AS correctAnswers, 
    SUM(q.marks) AS studentScore, (SELECT SUM(marks) FROM question 
    WHERE testid=$_REQUEST['testid']) AS totalScore 
    FROM question q, studentquestion sq 
    WHERE sq.testid=$_REQUEST['testid'] AND q.testid = sq.testid 
    AND q.qnid = sq.qnid AND sq.answered = 'answered' 
    AND q.correctanswer = sq.stdanswer GROUP BY sq.stdid;
    

    PHP変数を作成して、パーセンテージを計算できます。例:

    $scorePercentage = $r3['studentScore'] / $r3['totalScore'] * 100;
    

    または

    $scorePercentage = $r3['studentScore'] .'/'. $r3['totalScore'];
    
    // Output: echo $scorePercentage;
    60
    60/100
    

    このSQLステートメントを使用してscorePercentageを今すぐ取得します:
    SELECT sq.stdid, sq.testid, COUNT(*) AS correctAnswers, 
    (SUM(q.marks) / (SELECT SUM(marks) FROM question WHERE testid=1) * 100) 
    AS studentScorePercentage FROM question q, studentquestion sq 
    WHERE sq.testid=$_REQUEST['testid'] AND q.testid = sq.testid AND q.qnid = sq.qnid 
    AND sq.answered = 'answered' AND q.correctanswer = sq.stdanswer 
    GROUP BY sq.stdid;
    

    上記の結果を含むSQLFiddle: http://sqlfiddle.com/#!9/8d47c/10



    1. MySQLインデックスの効率を改善する-複数のインデックスの列?

    2. MySQLでデータベースリンクを作成してOracleに接続するにはどうすればよいですか?

    3. mysqlテーブルを結合する方法

    4. 動的な行の値を列名として特定の順序で選択します