Привет, я пытаюсь суммировать результат двух результатов mysql.
Это мой код, он не работает.
SELECT
a.* ,
b.* ,
SUM(b.price) as price,
SUM(b.tax) as tax,
price + tax as price_tax --> error
FROM (SELECT name , item_id
FROM items)a
LEFT JOIN (SELECT item_id , price , tax
FROM bank
)b
ON a.item_id = b.item_id
GROUP BY item_id
price + tax
как price_tax
Первый
Механизм SQL не знает псевдоним столбца в предложении select во время (конкретного) выполнения запроса, поэтому вы не можете использовать псевдоним, который вы должны повторить код
SELECT
SUM(b.price) as price,
SUM(b.tax) as tax,
SUM(b.price) + SUM(b.tax) as price_tax
FROM (
SELECT name , item_id
FROM items
)a
LEFT JOIN (
SELECT item_id , price , tax
FROM bank
)b
ON a.item_id = b.item_id
GROUP BY item_id
второй
в некоторой версии mysql не допускается использование функции агрегации и выберите столбец, не упомянутый в группе, поэтому вы должны удалить столбец, не упоминаемый в группе, (или добавить функцию фальшивого изменения) для остальных столбцов
SELECT
a.item ,
SUM(b.price) as price,
SUM(b.tax) as tax,
SUM(b.price) + SUM(b.tax) as price_tax
FROM (
SELECT name , item_id
FROM items
)a
LEFT JOIN (
SELECT item_id , price , tax
FROM bank
)b
ON a.item_id = b.item_id
GROUP BY item_id