describe user;
id int(1) NO 'PRI' 0
name 'varchar'(20) YES NULL
address 'varchar'(20) YES NULL
class int(2) YES NULL
DOB date YES NULL
created date YES NULL
describe 'marklist'
+-------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| id | int(1) | NO | | 0 | |
| subject | varchar(10) | YES | | NULL | |
| 'markscored'| int(2) | YES | | NULL | |
| 'outof' | int(2) | YES | | NULL | |
| 'userid' | int(2) | YES |'NUL'| NULL | |
+-------------+-------------+------+-----+---------+-------+
これらは、与えられた二つのテーブルであり、これら2から、私はあることを置くアウトを要求を生成するために2つのテーブルを結合:親切に私は上記の出力を取得するクエリを与えるとして与えられた出力
|name |class|biology|chemistry|physics|outoftotal|totalmarkscored|percentage|
+-----+-----+-------+---------+-------+----------+---------------+----------+
|arun | 5 | 45 | 42 | 40 | 150 | 127 |84.6 |
2つのテーブルuserとmarklist '
コードを書式設定してください。 4行以上のスペースで各行をインデントします。 –
以下のクエリを使用して、私は私の必要な出力を得ます。 – Gowrisankar
SELECT u.name、u.class、 SUM(対象がLIKE '生物学'と表示されていますELSE 0 END)AS生物学 SUM(対象LIKE 'chemistry' THEN物理AS被写体LIKE '物理' はTHEN ELSE 0 END markscored化学AS 0 END)、 SUM(CASE)、 SUM(outof markscored)TOTAL AS、 SUM()U FROM AS oUTOF 、marklist mの ELSE markscored WHERE u.id = m.userid GROUP BY u.name、u.class; – Gowrisankar