here is my situation.
in kanban_data table
I have fields:
wip_chemicalweighing
wip_compounding
wip_extrusion
wip_forming
wip_deflashing
first i entered data in wip_chemicalweighing,
when I entered in wip_compounding I need to 0.00 the wip_chemicalweighing and when I enter data in wip_extrusion the wip_compounding also become 0.00 and so on until the wip_deflashing has a data. which I resolved with this code:
UPDATE kanban_data kd SET wip_chemicalweighing = (SELECT ROUND(IF (NOT ISNULL(SUM(compounding)), 0, SUM(chemicalweighing)),2) AS wip_chemicalweighing FROM kanban k WHERE k.LOT_CODE = kd.LOT_CODE AND k.REFNUM = kd.REFNUM GROUP BY k.REFNUM),
wip_compounding = (SELECT ROUND(IF (NOT ISNULL(SUM(extrusion)), 0, SUM(compounding)),2) AS wip_compounding FROM kanban k WHERE k.LOT_CODE = kd.LOT_CODE AND k.REFNUM = kd.REFNUM GROUP BY k.REFNUM),
wip_extrusion = (SELECT ROUND(IF (NOT ISNULL(SUM(forming)), 0, SUM(extrusion)),2) AS wip_extrusion FROM kanban k WHERE k.LOT_CODE = kd.LOT_CODE AND k.REFNUM = kd.REFNUM GROUP BY k.REFNUM),
wip_forming = (SELECT ROUND(IF (NOT ISNULL(SUM(deflashing)), 0, SUM(forming)),2) AS wip_forming FROM kanban k WHERE k.LOT_CODE = kd.LOT_CODE AND k.REFNUM = kd.REFNUM GROUP BY k.REFNUM),
wip_deflashing = (SELECT ROUND(SUM(deflashing),2) AS wip_deflashing FROM kanban k WHERE k.LOT_CODE = kd.LOT_CODE AND k.REFNUM = kd.REFNUM GROUP BY k.REFNUM)
now, I also need to do it in kanban_checker.
not SUM but COUNT, but it did not work.
UPDATE kanban_checker kc SET kc.count_wip_chemical_weighing = (SELECT ROUND(IF (NOT ISNULL(COUNT(kd.wip_compounding)), 0, COUNT(kd.wip_chemicalweighing)),2) AS count_wip_chemical_weighing FROM kanban_data kd WHERE kc.PCODE = kd.PCODE GROUP BY kc.PCODE), kc.count_wip_compounding = (SELECT ROUND(IF (NOT ISNULL(COUNT(kd.wip_extrusion)), 0, COUNT(kd.wip_compounding)),2) AS count_wip_compounding FROM kanban_data kd WHERE kc.PCODE = kd.PCODE GROUP BY kc.PCODE), kc.count_wip_extrusion = (SELECT ROUND(IF (NOT ISNULL(COUNT(kd.wip_forming)), 0, count(kd.wip_extrusion)),2) AS count_wip_extrusion FROM kanban_data kd WHERE kc.PCODE = kd.PCODE GROUP BY kc.PCODE), kc.count_wip_forming = (SELECT ROUND(IF (NOT ISNULL(COUNT(kd.wip_deflashing)), 0, COUNT(kd.wip_forming)),2) AS count_wip_forming FROM kanban_data kd WHERE kc.PCODE = kd.PCODE GROUP BY kc.PCODE), kc.count_wip_deflashing = (SELECT ROUND(COUNT(kd.wip_deflashing),2) AS count_wip_deflashing FROM kanban_data kd WHERE kc.PCODE = kd.PCODE GROUP BY kc.PCODE);
Thank you so much