sql >> Databasteknik >  >> RDS >> Mysql

MySQL-procedur inom en Select?

Ticket_FiscalTotals-proceduren returnerar en datamängd med vissa fält, men du behöver bara ett av dem - Service . Skriv om din procedur till lagrad funktion - Get_Ticket_FiscalTotals_Service .

Ett annat sätt är att skapa och fylla i en temporär tabell i proceduren och lägga till denna tillfälliga i en fråga, t.ex.:

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;


  1. Hur infogar jag i en databas endast om ett värde har ändrats?

  2. Hantering av transaktioner i flertrådsmiljö

  3. SQL :MELLAN vs <=och>=

  4. Kontrollera om användarnamnet finns PDO