Factory System SP Product Detail
Home

Factory System SP Product Detail

Factory System SP Product Detail

ProductArticle SelectBy IdProduct OrderBy ArticleType ArticleName

Probleem

Een bepaald product met alle artikelen waaruit dat product bestaat. De lijst van de deze artikelen is geordend op ArticleType en dan op Name. Per type wordt het subtotaal berekend. Op het einde wordt het totaal van alle artikelen berekend.

Design

Product
quantiteit eenheid eenheidsprijs totale kost
MP code artikel 1 naam 3 m 15.6 46.8
MP code artikel 2 naam 4 p 0.5 2
MP code artikel 3 naam 3 m 12 36
Subtotaal MP 84.8
AC code artikel 10 naam 6 p 1.5 9
AC code artikel 2 naam 14 p 0.5 7
AC code artikel 4 naam 6 p 4 24
Subbtotaal AC 40
MO code artikel 11 naam 30 min 1 30
MO code artikel 14 naam 10 min 0.5 5
MO code artikel 7 naam 90 min 1 90
MO code artikel 8 naam 30 min 1 30
Subtotaal MO 155
Totaal product 279.8

Oplossing

-- modernways.be
-- created by an orm apart
-- Entreprise de modes et de manières modernes
-- MySql DML
-- Created : Sunday 16th of August 2015 10:36:09 AM
-- DML ProductArticleSelectByIdProductOrderByArticleTypeArticleName Stored Procedure for table ProductArticle
-- selecteer alle artikelen van een product geordend op ArticleType, ArticleNumber
--
USE MikMak;
DROP PROCEDURE IF EXISTS ProductArticleSelectByIdProductOrderByArticleTypeArticleName;
DELIMITER //
CREATE PROCEDURE `ProductArticleSelectByIdProductOrderByArticleTypeArticleName`
(
     pIdProduct INT
)
BEGIN
SELECT `IdProduct-Article`.`Name` as IdProductName,
    `ProductArticle`.`IdProduct`,
    `IdArticle-Article`.`Name` as IdArticleName,
    `ProductArticle`.`IdArticle`,
    `IdArticle-Article`.`Number` as IdArticleNumber,
    `ProductArticle`.`Id`,
    `IdArticle-Article`.`UnitPrice` as IdArticleUnitPrice,
    `ArticleType`.`Code` as ArticleTypeCode,
    `ProductArticle`.`Quantity` as Quantity

    FROM `ProductArticle`
    INNER JOIN `Article` as `IdProduct-Article`
        ON `ProductArticle`.`IdProduct` = `IdProduct-Article`.`Id`
    INNER JOIN `Article` as `IdArticle-Article`
        ON `ProductArticle`.`IdArticle` = `IdArticle-Article`.`Id`
    INNER JOIN `ArticleType` 
        ON `IdArticle-Article`.`IdArticleType` = `ArticleType`.`Id`
    WHERE `ProductArticle`.`IdProduct` = pIdProduct
      GROUP BY IdArticleNumber
  ORDER BY `ArticleType`.`Code`, IdArticleNumber;
END //
DELIMITER ;

call ProductArticleSelectByIdProductOrderByArticleTypeArticleName(190);

JI
2015-11-27 13:59:13