Попробуйте вычислить сводную таблицу и затем присоединиться (это, вероятно, будет выполнено быстрее, так как объединение, вероятно, будет меньше).
Select item_No, unit_sum * Unit_Percentage as Units@2018Mix
From (
SELECT item_no, sum(g.units) as unit_sum
FROM Global_GM_2019
Group by item_no
) as g
FULL JOIN UnitMix_perc_2018 u
ON u.item_no=g.item_no
Или просто перевести расчет в сумму
SELECT g.Item_No, sum(g.units* u.Unit_Percentage) as Units@2018Mix
FROM Global_GM_2019 g
FULL JOIN UnitMix_perc_2018 u
ON u.item_no=g.item_no
GROUP BY g.item_no;
Или добавьте скаляр в процентах к группе туров.
SELECT g.Item_No, (sum(g.units)* u.Unit_Percentage) as Units@2018Mix
FROM Global_GM_2019 g
FULL JOIN UnitMix_perc_2018 u
ON u.item_no=g.item_no
GROUP BY g.item_no, u.unit_percentage:
В ответ на поток комментариев ...
@sag, ты вроде как обманываешь - ты задаешь два вопроса в одном. Два вопроса:
- У меня синтаксическая ошибка в опубликованном запросе. (Выражение «Я знаю, что должен включать все столбцы в группе по функции» не отменяет этот момент. Если вы это знаете, вы должны сделать это в своем оригинальном сообщении.
создать пример Minimal, Complete, Verifiable .)
- Я не собираюсь рассказывать вам, как он хранится и как его вычислять, но я хочу получить некоторые данные за два года в моих 4 столбцах вывода.
Я ответил на вопрос 1 тремя способами. Я могу только догадываться по вопросу 2 (потому что вы не предоставили никаких деталей в своем вопросе на эту тему). Вот мое предположение.
SELECT g.Item_No,
sum(g19.units),
(sum(g18.units)* u.Unit_Percentage) as Units@2018Mix,
/* Maybe */ (sum(g19.units) (double) / sum(g18.units) * 100.0 as g19_pcnt_increase_over_g18 /*???*/
/* I have no idea how you intend to calculate "product mix" because you provide zero information on this topic. */
FROM Global_GM_2019 g JOIN Global_gm_2018 as G18 on
g.item_id = g18.item_id
FULL JOIN UnitMix_perc_2018 u
ON u.item_no=g.item_no
GROUP BY g.item_no, u.unit_percentage:
Мы можем предоставить только ответы на вопрос, который вы задали , для которого вы предоставляете некоторую вспомогательную информацию . Опять же, пожалуйста, обратитесь к тому, как создать пример Minimal, Complete, Verifiable .
.