我有一個看起來像微不足道的問題,但我無法使它工作。它在Oracle SQL中。 這裏是腳本的樣品:如何從類別和生產者組中選擇具有最低價格的產品?
create table product (
product_id number primary key,
name varchar(255)
);
create table producer (
producer_id number primary key,
name varchar(255)
);
create table catalog (
pp_product_id number,
pp_producer_id number,
price number
);
alter table catalog add constraint pp_product_id1 foreign key (pp_product_id) references product (product_id);
alter table catalog add constraint pp_product_id2 foreign key (pp_producer_id) references producer (producer_id);
insert into product (product_id, name) values (1, 'HDD 250 gb');
insert into product (product_id, name) values (2, 'HDD 500 gb');
insert into product (product_id, name) values (3, 'HDD 750 gb');
insert into producer (producer_id, name) values (1, 'Hitachi');
insert into producer (producer_id, name) values (2, 'Corsair');
insert into producer (producer_id, name) values (3, 'Western Digital');
insert into catalog (pp_product_id, pp_producer_id, price) values (1,1, 80);
insert into catalog (pp_product_id, pp_producer_id, price) values (1,3, 60);
insert into catalog (pp_product_id, pp_producer_id, price) values (2,1, 75);
insert into catalog (pp_product_id, pp_producer_id, price) values (2,2, 40);
insert into catalog (pp_product_id, pp_producer_id, price) values (3,2, 63);
insert into catalog (pp_product_id, pp_producer_id, price) values (3,3, 100);
因此,有6個產品總共3個生產者,3類產品(HD類型的)。我需要的是顯示產品的CHEAPEST,每種類型的產品都帶有與該產品相關的生產商名稱。喜歡的東西:
西數250 GB 60
海盜船500GB的40
海盜船750GB的63
這將在他們的小組中選擇最便宜的HD(類型)
select p.name, min (c.price)
from product p, catalog c, producer prc
where c.pp_product_id = p.product_id and prc.producer_id = c.pp_producer_id
group by p.name;
...但我不能添加生產者名稱?我嘗試了幾種解決方案,但都沒有成功
您不能添加生產者名稱,因爲它不是組的一部分 – evgenyl 2013-03-25 19:00:49