I have 2 tables:
- Product (prod_id, prod_name, vend_id)
- Vendor (vend_id, vend_name, vend_state)
I am trying to make a query that will give me a list of the vend_name
for every vendor that supplied only one product. vend_id
is a foreign key in Product
, and I would like to count how many instances of each vend_id
are in Product
and then list out the vend_name
of those that only occur once. Any help would be appreciated.
I am using Oracle SQL Developer (because I have to).
This is what I have, but keep getting either “invalid identifier” or “group function is not allowed here”
select count(*), Product.vend_id, Vendor.vend_id from Product inner join Vendor on Product.vend_id = vend.vend_id where count(*) < 2 group by product.vend_id, vendor.vend_name;
Advertisement
Answer
Something like this should work:
SELECT vend_name FROM Vendor WHERE vend_id IN ( SELECT vend_id FROM Product GROUP BY vend_id HAVING COUNT(DISTINCT product_id) = 1 ) ;