我有一个数据库,其中包含供应商,他们所出售的商品以及他们的位置。
我需要针对销售一定数量产品的供应商来搜索基于特定地区(例如州或)的供应商。
此问题的示例是:
可以提供多个商品或位于伊利诺伊州的所有供应商的全名是什么?
如果我可以使用两个SQL查询,这将很容易(但是对于这个问题我不能)。>>
假定使用的表之间没有连接,我的解决方案不正确,但这是我尝试的方法
select cs.vendor_id, name, count(cs.PRODUCT_ID) from grocery.vendor where va.state_territory_province = 'Illinois' group by (cs.vendor_id) or /# error found here #/ having (count(cs.product_id)>1);
第1行出现错误:ORA-00933:SQL命令未正确结束
如果我分别尝试每个,都会得到这些结果
使用Illonois
select cs.vendor_id, v.name, count(cs.PRODUCT_ID) from grocery.vendor v inner join grocery.vendor_address va on (v.vendor_id = va.vendor_id) inner join grocery.can_supply cs on (v.vendor_id = cs.vendor_id) where va.state_territory_province = 'Illinois' group by (cs.vendor_id, v.name);
VENDOR_ID名称COUNT(CS.PRODUCT_ID)
33 Drinks R Us 1 35 Jungle Man 1 34 Poland Spring 1
使用产品数量
select cs.vendor_id, v.name, count(cs.PRODUCT_ID) from grocery.vendor v inner join grocery.vendor_address va on (v.vendor_id = va.vendor_id) inner join grocery.can_supply cs on (v.vendor_id = cs.vendor_id) group by (cs.vendor_id, v.name) having( count(cs.product_ID)>1);
VENDOR_ID名称COUNT(CS.PRODUCT_ID)
8 Orgo Home Farm 3 17 Wellness 2 21 Wily Wonka 4 27 Camel 3 29 Supplies R Us 5 13 Clean Me Please 5 15 Oral Care Inc 2 31 Cheese Cake Factory 2 37 Crunchy 2 1 Moo Moo Milk Farm 4 4 Haagen Daz 3 26 Beer Inc 4 6 Sailor Bob 3 10 Dawn 2 16 SPAM 2 18 Wonder inc 3 5 Butcher Mat 3 9 Soda Forever 4 14 Wash Shampoo Inc 4 24 Huntz 4 20 Hershey 3 22 Bake Me Inc 5 30 We Make Pizza 2 36 Taste Treat 3 7 Monkey Paradise 6 19 Puff 5
选择了26行。
基本上,我想将这两个查询合并为一个。有没有办法将它们嵌套在一起?
我有一个数据库,其中包含供应商,他们所出售的商品以及他们的位置。我需要搜索基于特定地点(例如州)的供应商或出售一定数量的供应商...
我倾向于这样做:
您应该能够将两个条件都放在HAVING
子句中:
如何对两个查询使用UNION子句?