Предположим, у меня есть бюджет в 10 долларов США (любое целое число), и я хочу распространять его по записям, которые имеют поле ранга с различными потребностями. Пример:Распределить бюджет для ранжированных компонентов в SQL
rank Req. Fulfilled?
1 $3 Y
2 $4 Y
3 $2 Y
4 $3 N
Эти разряды от 1 до 3 должны быть выполнены, поскольку они находятся в пределах бюджета. тогда как один рейтинг 4 не должен.
Я хочу, чтобы SQL-запрос решил это.
Ниже мой первоначальный сценарий:
CREATE TABLE budget (
id VARCHAR (32),
budget INTEGER,
PRIMARY KEY (id));
CREATE TABLE component (
id VARCHAR (32),
rank INTEGER,
req INTEGER,
satisfied BOOLEAN,
PRIMARY KEY (id));
INSERT INTO budget (id,budget) VALUES ('1',10);
INSERT INTO component (id,rank,req) VALUES ('1',1,3);
INSERT INTO component (id,rank,req) VALUES ('2',2,4);
INSERT INTO component (id,rank,req) VALUES ('3',3,2);
INSERT INTO component (id,rank,req) VALUES ('4',4,3);
Заранее спасибо за вашу помощь.
Ли
Вы поделились своим DDL, но какие у вас начальные мысли о том, как решить эту проблему? –
Я хотел запустить цикл, вычитая из бюджета на каждой итерации с максимальной функцией, чтобы найти наивысший ранг, но я хотел посмотреть, есть ли чистый запрос SQL, а не процедура. – Lee