Продолжайте мой последний вопрос раньше. Но теперь я добавляю некоторые условия ниже:
В соответствии с рабочим кодом запроса:
SELECT
R.budgetid_fk,
SUM(R.quantity),
SUM(R.quantity * I.price * COALESCE(CC.amount,1)) as total,
B.budgetid,
B.budget_month
FROM tb_pro_request R
INNER JOIN tb_items I
ON R.itemid_fk = I.itemid
INNER JOIN tb_budgets B
ON R.budgetid_fk = B.budgetid
AND B.active = 'Y'
LEFT JOIN tb_currency_converters CC
ON CC.from_currencyid_fk = I.currencyid_fk
AND CC.to_currencyid_fk = B.currencyid_fk
WHERE
R.investmentid_fk = ''
AND (
R.approval_status = 'P'
OR R.approval_status = 'A'
)
AND DATE_FORMAT(B.budget_month,'%Y-%m') = '2018-03'
AND B.departmentid_fk = 'DP0002'
GROUP BY R.budgetid_fk;
По этому коду, он получит общую сумму SUM от некоторой колонки.
requestid | budgetid_fk | category | itemid_fk | quantity | currencyid_fk | price | discount | userid_fk
RQ201803000001 | BU201803000002 | Item | IT0001 | | |
RQ201803000002 | BU201803000002 | Project | | 20 | CU0002 | 750 | 10 | US0004
Теперь мне нужно добавить дополнительный код для расчета проекта категории (RQ201803000002)
цена накапливается с
SUM(R.quantity * I.price * COALESCE(CC.amount,1)) as total
Логика:
(quantity * (price * currency)) - discount as total2
*need to convert the currency first
*get department from userid_fk
Затем аккумулируйте его
total + total2
Вы можете увидеть скрипт sql здесь
Я думаю, вы просто хотите этого (если только discount
пришла за другой стол?):
SUM(R.quantity * (I.price - discount) * COALESCE(CC.amount,1)) as total
tb_pro_request
цена не берется из tb_items, а из той же таблицы tb_pro_request