1
У меня есть две таблицы, рубрики CustomerCategories и статьи. Обе таблицы имеют столбец VatPercentage и VatPrice.Как использовать суммы и объединения в group_concat
Сценарии:
- В случае же vatpercentage существует в обеих таблицах я хочу суммировать vatprice из обеих таблиц и добавить его в строку.
- В случае, когда vatpercentage существует только в таблице CustomerCategories, я хочу суммировать vatprice отсюда и добавить его в строку.
- В случае, если vatpercentage существует только в таблице статей, я хочу здесь суммировать vatprice и добавить его в строку.
Пример таблицы:
Статьи:
ArticleId TotalPrice VatPercentage VatPrice
1 100 25.0000000000 25
2 80 25.0000000000 20
3 50 8.0000000000 4
4 70 8.0000000000 5.6
5 20 0 0
6 0 0 0
CustomerCategories:
CustomerCategoryId TotalPrice VatPercentage VatPrice
2 163 8.0000000000 13
2 163 13.0000000000 13
2 163 0 0
2 150 25.0000000000 37.5
В результате я хочу обратно из запроса в этом са себе:
{esc}{40h}25 %{esc}{41h}82.5 NOK{lf}{esc}{40h}8 %{esc}{41h}22.6 NOK{lf}{esc}{40h}13 %{esc}{41h}13 NOK{lf}
код я уже пытаюсь без каких-либо положительных результатов:
SELECT GROUP_CONCAT(Result, '|') Results
FROM (
select case when cc.VatPercentage = a.VatPercentage
then
SELECT '{esc}{40}' || CAST(cc.VatPercentage AS INTEGER) || '% ' ||
(SUM(cc.VatPrice) + SUM(a.VatPrice)) || ' NOK' || '{lf}' Result end
else
(
case when cc.VatPercentage <> a.VatPercentage
then
SELECT '{esc}{40}' || CAST(cc.VatPercentage AS INTEGER) || '% ' ||
(SUM(cc.VatPrice) + SUM(a.VatPrice)) || ' NOK' || '{lf}' ||
SELECT '{esc}{40}' || CAST(a.VatPercentage AS INTEGER) || '% ' ||
(SUM(a.VatPrice)) || ' NOK' || '{lf}' Result
end
)
FROM CustomerCategories cc
LEFT JOIN Articles a
on cc.VatPercentage = a.VatPercentage
WHERE
cc.VatPercentage != '0'
AND a.VatPercentage != '0'
AND cc.TotalPrice != '0'
AND a.TotalPrice != '0'
GROUP BY
cc.VatPercentage OR a.VatPercentage) x
Помощь будет оценена.
Большое вам спасибо :) Возможно ли сделать это в порядке возрастания? Я попытался добавить заказ после Group, но он не сортирует. – Henrik
Строки сравниваются лексикографически, а не как номера. –