Étant donné que les sous-requêtes ne sont pas autorisées dans les vues, vous devrez les simuler en créant plusieurs vues.
Par exemple, cette requête résoudra votre problème si elle est exécutée directement :
SELECT
TotalCircles + TotalSquares AS TotalShapes
FROM
(SELECT
BlueCirles + RedCircles AS TotalCircles,
BlueSquares + RedSquares AS TotalSquares
FROM
(SELECT
2 AS BlueCirles,
3 AS RedCircles,
4 AS BlueSquares,
5 AS RedSquares
) AS shapes
) as totals;
Selon la documentation MySQL les vues ont la restriction de ne pas pouvoir contenir de sous-requêtes dans la clause FROM. Pour contourner cette limitation et transformer cette requête en vue, divisez-la en 3 vues (une pour chaque sous-requête), la dernière donnant la combinaison de champs souhaitée :
CREATE VIEW shapes AS
SELECT
2 AS BlueCirles,
3 AS RedCircles,
4 AS BlueSquares,
5 AS RedSquares;
CREATE VIEW totals AS
SELECT
BlueCirles + RedCircles AS TotalCircles,
BlueSquares + RedSquares AS TotalSquares
FROM
shapes;
CREATE VIEW result AS
SELECT
TotalCircles + TotalSquares AS TotalShapes
FROM
totals;
SELECT * FROM result;