Advertisement
Guest User

Untitled

a guest
Nov 26th, 2014
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. +----------+ +-------------+
  2. ! panel ! ! assembly !
  3. +----------+ +-------------+
  4. ! panel_id ! ! assembly_id !
  5. ! ... ! ! panel_id !
  6. !----------! ! ... !
  7. +-------------+
  8.  
  9. +-------------+-------+-------+-------+-------+-------+-------+---
  10. ! assembly_id ! cost1 ! cost2 ! cost3 ! cost4 ! cost5 ! cost6 ! ...
  11. +-------------+-------+-------+-------+-------+-------+-------+---
  12. ! 1 ! 100 ! 0 ! 20 ! 300 ! 0 ! 0 ! ...
  13. ! 3 ! 200 ! 0 ! 40 ! 100 ! 0 ! 0 ! ...
  14. ! 6 ! 300 ! 0 ! 600 ! 200 ! 0 ! 0 ! ...
  15. ! 12 ! 400 ! 0 ! 700 ! 300 ! 0 ! 0 ! ...
  16.  
  17. CREATE STORED PROCEDURE sp_panel_breakdown(p_panel_id INT)
  18. BEGIN
  19. -- create temporary table
  20. DROP TABLE IF EXISTS breakdown;
  21. 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));
  22.  
  23. -- insert data into temporary table
  24. SELECT sf_assembly_breakdown(assembly_id) as dummy
  25. FROM assembly
  26. WHERE panel_id=p_panel_id;
  27.  
  28. -- return temporary table
  29. SELECT * FROM breakdown;
  30. END
  31.  
  32. CREATE STORED FUNCTION sf_assembly_breakdown(p_assembly_id INT) RETURNS INT
  33. BEGIN
  34. -- do cost calculations
  35. ...
  36.  
  37. -- insert calculated costs as a new row in temporary table
  38. INSERT INTO breakdown SELECT null, p_assembly_id, cost1, cost2, ..., cost10;
  39.  
  40. -- return dummy value
  41. RETURN null;
  42. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement