2016-09-08 10 views

答えて

0

あなたは、このアプローチにより、あなたの結果を得ることができます。

SELECT A.Name, MAX(A.OldValue) AS Old, MAX(A.NewValue) AS New 
FROM (
    SELECT Name, Amount AS OldValue, NULL AS NewValue 
    FROM TestTable 
    WHERE Enrolled = 'old' 

    UNION 

    SELECT Name, NULL, Amount 
    FROM TestTable 
    WHERE Enrolled = 'new' 
) A 
GROUP BY A.Name 

Working Demo

を見つけてください。
0

このクエリは実行する必要があります。

SELECT 
    names.name Name, olddata.amount Enrolled_Old, newdata.amount Enrolled_New 
FROM 
    enrol_data olddata 
     JOIN 
    enrol_data newdata ON (olddata.name = newdata.name) 
     JOIN 
    (SELECT DISTINCT 
     name 
    FROM 
     enrol_data) names ON (names.name = olddata.name) 
WHERE 
    LOWER(olddata.Enrolled) = 'old' 
     AND LOWER(newdata.Enrolled) = 'new'; 

出力

+--------+--------------+--------------+ 
| Name | Enrolled_Old | Enrolled_New | 
+--------+--------------+--------------+ 
| bcd |   300 |   500 | 
| Deepak |   200 |   900 | 
+--------+--------------+--------------+ 
2 rows in set (0.01 sec) 
関連する問題