sql >> Database >  >> RDS >> Mysql

MySQL SELECT SUM gebaseerd op een andere tabel

Ik denk dat ik een beetje in je FK verprutst, maar je hebt tenminste de geest;)

SQL Fiddle

MySQL 5.6 Schema-instellingen :

Query 1 :

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 = 'DP0003'
GROUP BY R.budgetid_fk

Resultaten :

|    budgetid_fk | SUM(R.quantity) |             total |       budgetid | budget_month |
|----------------|-----------------|-------------------|----------------|--------------|
| BU201803000001 |               7 | 575.2840143424692 | BU201803000001 |   2018-03-01 |


  1. cx_Oracle - DLL-laden mislukt:%1 is geen geldige Win32-toepassing. Python

  2. Een relationeel databaseschema leegmaken

  3. Waarom moeten we de MySQL-database sluiten na een query-opdracht?

  4. Vuile geheimen van de CASE-expressie