Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- +----------+ +-------------+
- ! panel ! ! assembly !
- +----------+ +-------------+
- ! panel_id ! ! assembly_id !
- ! ... ! ! panel_id !
- !----------! ! ... !
- +-------------+
- +-------------+-------+-------+-------+-------+-------+-------+---
- ! assembly_id ! cost1 ! cost2 ! cost3 ! cost4 ! cost5 ! cost6 ! ...
- +-------------+-------+-------+-------+-------+-------+-------+---
- ! 1 ! 100 ! 0 ! 20 ! 300 ! 0 ! 0 ! ...
- ! 3 ! 200 ! 0 ! 40 ! 100 ! 0 ! 0 ! ...
- ! 6 ! 300 ! 0 ! 600 ! 200 ! 0 ! 0 ! ...
- ! 12 ! 400 ! 0 ! 700 ! 300 ! 0 ! 0 ! ...
- CREATE STORED PROCEDURE sp_panel_breakdown(p_panel_id INT)
- BEGIN
- -- create temporary table
- DROP TABLE IF EXISTS breakdown;
- CREATE TEMPORARY TABLE breakdown(breakdown_id INT NOT NULL AUTO_INCREMENT, assembly_id INT, cost1 DECIMAL(10,2), cost2 DECIMAL(10,2), ..., cost10 DECIMAL(10,2), PRIMARY KEY (breakdown_id));
- -- insert data into temporary table
- SELECT sf_assembly_breakdown(assembly_id) as dummy
- FROM assembly
- WHERE panel_id=p_panel_id;
- -- return temporary table
- SELECT * FROM breakdown;
- END
- CREATE STORED FUNCTION sf_assembly_breakdown(p_assembly_id INT) RETURNS INT
- BEGIN
- -- do cost calculations
- ...
- -- insert calculated costs as a new row in temporary table
- INSERT INTO breakdown SELECT null, p_assembly_id, cost1, cost2, ..., cost10;
- -- return dummy value
- RETURN null;
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement