ошибка при транспонировании и присоединении таблицы - PullRequest
0 голосов
/ 30 марта 2012

Мне нужно выбрать несколько таблиц, и одна из них будет транспонирована, моя таблица приведена ниже:
table_score

|ID  | Subject | Score|
----------------------
|001 | 2GSLIG  | 80   |
|001 | 3ECITI  | 70   |
|002 | 2GSLIG  | 75   |
|002 | 3ECITI  | 85   |
-----------------------

table_student

|ID  | StudentName |
--------------------
|001 | Diana       |
|002 | Yose        |
--------------------

тогда я хочу превратить в

|ID |StudentName| 2GSLIG | 3ECITI |
-----------------------------------
|001| Diana     |  80   |   70   |
|002| Yose      |  85   |   75   |
----------------------------------

это мой код, но я сталкиваюсь с ошибкой

SELECT (
    ID,
    SUM(IF(Subject = '2GSLIG', Score, 0)) AS `2GSLIG`,
    SUM(IF(Subject = '3ECITI', Score, 0)) AS `3ECITI`
FROM table_score) JOIN (SELECT StudentName from table_student)
GROUP BY ID

Интересно, поможет ли кто-нибудь мне, спасибо

Ответы [ 2 ]

1 голос
/ 30 марта 2012
select st.ID,
    st.StudentName,
    SUM(case when sc.Subject = '2GSLIG' then sc.Score end) as `2GSLIG`,
    SUM(case when sc.Subject = '3ECITI' then sc.Score end) as `3ECITI`
from table_score sc
join table_student st on sc.ID = st.ID
group by st.ID,
    st.StudentName
1 голос
/ 30 марта 2012
SELECT tsc.ID,
       tst.StudentName,
       SUM(CASE WHEN tsc.Subject='2GSLIG' THEN tsc.Score END) AS '2GSLIG',
       SUM(CASE WHEN tsc.Subject='3ECITI' THEN tsc.Score END) AS '3ECITI'
FROM table_score tsc
INNER JOIN
table_student tst 
ON tsc.ID = tst.ID
GROUP BY tsc.ID,tst.StudentName;   

Проверьте это на SQLFIDDLE - http://sqlfiddle.com/#!3/68e96/1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...