私はこのように動作します手順を持っている:選択内のMySQL手順?
mysql> call Ticket_FiscalTotals(100307);
+---------+--------+----------+------------+------------+
| Service | Items | SalesTax | eTaxAmount | GrandTotal |
+---------+--------+----------+------------+------------+
| 75.00 | 325.00 | 25.19 | 8.00 | 433.19 |
+---------+--------+----------+------------+------------+
1 row in set (0.08 sec)
私はそうのように、選択の中から、このプロシージャを呼び出すしたいと思います:
SELECT Ticket.TicketID as `Ticket`,
Ticket.DtCheckOut as `Checkout Date/Time`,
CONCAT(Customer.FirstName, ' ', Customer.LastName) as `Full Name`,
Customer.PrimaryPhone as `Phone`,
(CALL Ticket_FiscalTotals(Ticket.TicketID)).Service as `Service`
FROM Ticket
INNER JOIN Customer ON Ticket.CustomerID = Customer.CustomerID
ORDER BY Ticket.SiteHomeLocation, Ticket.TicketID
は、しかし、私は、これは痛いほど間違っていることを知っています。誰かが正しい方向で私を指差してくれますか?最終的な選択で(結合される)手順からのすべての列にアクセスする必要があります。そのプロシージャ内のSQLコードはむしろ痛いので、最初はその理由です!
ユーザー定義関数を使用してみてください。クエリでプロシージャを使用することはできませんが、udfsを使用することはできます。 – pavanred
@pavanred - UDFは行全体ではなく1つの値しか返すことができないという印象を受けましたか? – Fuginator