MySQL результаты сумм после каждой суммы

0

Привет, я пытаюсь суммировать результат двух результатов 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
Теги:

1 ответ

3
Лучший ответ

Первый

Механизм 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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню