В этом случае хранимая процедура, callInsertUpdate вызывает другую хранимую процедуру, чтобы вставить одну строку в таблице продаж и три строки в SaleDetails table.The insertUpdate Порядок Одна продажа означает, что одна строка должна быть вставлена в таблицу продаж и соответствующие строки для продукты вставляется в таблицу SaleDetails. SaleID для строки, что идет в таблице продаж автоматически задается СУБД. КодСотрудника и CustomerId должны быть приведены Вами (или какой-то код, который вы написали). DateAndTime (метка) значение строки продаж также автоматически задается СУБД.
Для таблицы SaleDetails вы должны ввести в количестве и SoldPrice. Хранимая процедура insertUpdate будет определять SaleID и ProductID. SaleID просто вставляется в таблицу продаж, максимальное (целое) количество в колонке SaleID, все равны. Это код процедуры insertUpdate; #procedure вставить в SaleDetails и обновлять продукты разделитель //CREATE PROCEDURE insertUpdate (ПО numberOfRows INTEGER) начинают # счетчик цикла переменной DECLARE я Integer умолчанию 1; Переменная #productID от SaleDetailsTemp таблице DECLARE INTEGER PIDVar; #sold переменная цена за столом SaleDetails DECLARE SoldPriceVar DECIMAL (19,2); #variable для Запрашиваемое количество DECLARE INTEGER QtyRequestVar; #variable для SaleID из таблицы продаж DECLARE INTEGER SaleIDVar; #variable по количеству, что останется DECLARE INTEGER QtyRemainVar; #variable для доступного количества в таблице продуктов DECLARE INTEGER QtyAvailVar; SELECT MAX (SaleID) от продаж INTO SaleIDVar; Хотя я ВЫБОР QtyRequest, ProductID, QtyAvail, QtyRemain, SoldPrice ОТ SaleDetailsTemp WHERE ID = я што QtyRequestVar, PIDVar, QtyAvailVar, QtyRemainVar, SoldPriceVar; INSERT INTO SaleDetails (SaleID, ProductID, количество, SoldPrice) VALUES (SaleIDVar, PIDVar, QtyRequestVar, SoldPriceVar); КОМПЛЕКТ QtyRemainVar = QtyAvailVar - QtyRequestVar; ОБНОВЛЕНИЕ Продукты SET Коли