I am looking to fetch sum of transactions grouping them by item ID. I am able to get desired result fron below query in Oracle DB but the same does not work in MYSQL.
Below error is what I am getting:
Unknown column 'tran.itemid' in 'on clause'
SELECT tran.itemid,
(SELECT SUM(tranitm.quandity)
FROM transactions_item tranitm
JOIN transactions tr
ON(tr.id = tranitm.transid and tranitm.itemid = tran.itemid)
where TR.TRANSTYPE = 1) Purchases,
(SELECT SUM(tranitm.quandity)
FROM transactions_item tranitm
JOIN transactions tr
ON(tr.id = tranitm.transid and tranitm.itemid = tran.itemid)
where TR.TRANSTYPE = 2 ) Sales,
(SELECT SUM(tranitm.quandity)
FROM transactions_item tranitm
JOIN transactions tr
ON(tr.id = tranitm.transid and tranitm.itemid = tran.itemid)
where TR.TRANSTYPE = 3 ) PurchasesRtn,
(SELECT SUM(tranitm.quandity)
FROM transactions_item tranitm
JOIN transactions tr
ON(tr.id = tranitm.transid and tranitm.itemid = tran.itemid)
where TR.TRANSTYPE = 4) SalesRtn
FROM transactions_item tran
GROUP BY tran.itemid
Schema :
CREATE TABLE transactions
( id INT, transtype INT,fromledger INT,
ledgerid INT,agentid INT, quandity FLOAT,rate FLOAT);
CREATE TABLE transactions_item
(transid INT, itemid INT,quandity FLOAT,rate FLOAT);
INsert into transactions (id, transtype, fromledger, ledgerid, agentid,
quandity, rate) values (1, 1, 1, 1, 1, 100, 1000);
INsert into transactions (id, transtype, fromledger, ledgerid, agentid,
quandity, rate) values (2, 2, 1, 1, 1, 10, 1200);
INsert into transactions (id, transtype, fromledger, ledgerid, agentid,
quandity, rate) values (3, 3, 1, 1, 1, 50, 1500);
INsert into transactions (id, transtype, fromledger, ledgerid, agentid,
quandity, rate) values (4, 4, 1, 1, 1, 120, 1300);
INsert into transactions (id, transtype, fromledger, ledgerid, agentid,
quandity, rate) values (5, 1, 1, 1, 1, 10, 1100);
INsert into transactions (id, transtype, fromledger, ledgerid, agentid,
quandity, rate) values (6, 2, 1, 1, 1, 12, 1400);
INsert into transactions (id, transtype, fromledger, ledgerid, agentid,
quandity, rate) values (7, 3, 1, 1, 1, 130, 1550);
INsert into transactions (id, transtype, fromledger, ledgerid, agentid,
quandity, rate) values (8, 4, 1, 1, 1, 110, 1700);
INsert into transactions_item (transid, itemid,quandity,rate) values (1, 1, 100, 1000);
INsert into transactions_item (transid, itemid,quandity,rate) values (2, 1, 10, 1200);
INsert into transactions_item (transid, itemid,quandity,rate) values (3, 1, 50, 1500);
INsert into transactions_item (transid, itemid,quandity,rate) values (4, 1, 120, 1300);
INsert into transactions_item (transid, itemid,quandity,rate) values (5, 1, 10, 1100);
INsert into transactions_item (transid, itemid,quandity,rate) values (6, 1, 12, 1400);
INsert into transactions_item (transid, itemid,quandity,rate) values (7, 1, 130, 1550);
INsert into transactions_item (transid, itemid,quandity,rate) values (8, 1, 110, 1700);
INsert into transactions_item (transid, itemid,quandity,rate) values (1, 2, 100, 1000);
INsert into transactions_item (transid, itemid,quandity,rate) values (2, 2, 10, 1200);
INsert into transactions_item (transid, itemid,quandity,rate) values (3, 2, 50, 1500);
INsert into transactions_item (transid, itemid,quandity,rate) values (4, 2, 120, 1300);
INsert into transactions_item (transid, itemid,quandity,rate) values (5, 2, 10, 1100);
INsert into transactions_item (transid, itemid,quandity,rate) values (6, 2, 12, 1400);
INsert into transactions_item (transid, itemid,quandity,rate) values (7, 2, 130, 1550);
INsert into transactions_item (transid, itemid,quandity,rate) values (8, 2, 110, 1700);