Эти таблицы содержат информацию о различных деталях машин, хранящихся в разных местах склада:
CREATE TABLE part (
pid: integer,
description: varchar(128),
PRIMARY KEY (pid)
) Engine = InnoDB;
CREATE TABLE warehouse (
wid: integer,
address: varchar(128),
PRIMARY KEY (wid)
) Engine = InnoDB;
CREATE TABLE stock (
pid: INTEGER,
wid: INTEGER,
quantity: INTEGER,
unitcost: FLOAT
FOREIGN KEY (pid) REFERENCES part (pid),
FOREIGN KEY (wid) REFERENCES warehouse (wid)
) Engine = InnoDB;
В таблице запасов указано количество предметов, которые в настоящее время хранятся на конкретном складе, и стоимость каждого предмета, если он былбыть доставленным с этого склада.Например, предположим, что таблица содержит следующие строки:
pid wid quantity unitcost
1 1 10 23.50
1 2 15 22.95
1 3 7 22.00
Это будет означать, что на складе 1 имеется 10 единиц в запасе части 1, а каждая стоит 23,50 долл. США, а на складе 2 - 15 единиц на складе.стоимость $ 22,95 каждая и т. д. "
Предположим, что вам часто нужно отвечать на вопросы в форме:
- Какая самая дешевая общая стоимость заказа из 23 единиц части 1? "
- Где количество единиц и идентификатор детали меняются от запроса к запросу.
В этом случае самый дешевый способ доставки этого заказа - это купить все 7 товаров на складе на складе 3, все 15 товаров на складе 2 и всего 1 вещь на складе 1 на общую сумму 7.22:00 + 15 22:95 + 1 23:50 = 521: 75
Мой вопрос состоит в том, чтобы написать метод Java:
public double totalCost(int pid, int numItems)
, который вычисляет самую дешевую общую стоимость поставкиуказанное количество единиц детали с идентификатором pid.Вы можете предположить, что у метода есть доступ к переменной conn, которая ссылается на уже созданный java.sql.Connection.
Методы Java НЕ могут вызывать хранимые процедуры следующего вопроса