Mysql
 sql >> Base de données >  >> RDS >> Mysql

Procédure MySQL dans un Select ?

La procédure Ticket_FiscalTotals renvoie un ensemble de données avec certains champs, mais vous n'avez besoin que d'un seul d'entre eux - Service . Réécrivez votre procédure en fonction stockée - Get_Ticket_FiscalTotals_Service .

Une autre façon est de créer et de remplir une table temporaire dans la procédure, et d'ajouter cette table temporaire à une requête, par exemple :

DELIMITER $$

CREATE PROCEDURE Ticket_FiscalTotals()
BEGIN
  DROP TEMPORARY TABLE IF EXISTS temp1;
  CREATE TEMPORARY TABLE temp1(
    Service FLOAT(10.2),
    Items FLOAT(10.2),
    SalesTax FLOAT(10.2),
    eTaxAmount FLOAT(10.2),
    GrandTotal FLOAT(10.2)
  );
  INSERT INTO temp1 VALUES (75.0, 325.0, 25.19, 8.0, 433.19);
END
$$

DELIMITER ;

-- Usage
CALL Ticket_FiscalTotals();
SELECT t.*, tmp.service FROM Ticket t, temp1 tmp;