带有WHERE子句问题的嵌套SQL和计算字段
我正在尝试使以下查询正常工作:带有WHERE子句问题的嵌套SQL和计算字段,sql,oracle11g,where,average,Sql,Oracle11g,Where,Average,我正在尝试使以下查询正常工作: SELECT m.name,s.category, '$' || cast((select avg(retail) from STOCK INNER JOIN MANUFACTURER ON STOCK.DEALERID=MANUFACTURER.DEALERID WHERE s.category='sedan' or s.category='suv')
SELECT m.name,s.category,
'$' || cast((select avg(retail) from STOCK
INNER JOIN MANUFACTURER
ON STOCK.DEALERID=MANUFACTURER.DEALERID
WHERE s.category='sedan' or s.category='suv')
as decimal(4,2)) as AVG_RRP
from manufacturer m
join stock s
using (DEALERID)
WHERE (select(sum(retail) from stock)/
(select count(distinct category) from manufacturer)) >5000
所需输出:
- 我想显示制造商名称和库存类别
- 我想生成一个计算字段,其中本田和通用的平均零售价格式为$XX.XX
- 我还想列出所有类别的平均零售价都在5000美元以上
MANFACTURER: DEALERID#,name,phone,state
STOCK: VIN#,name,pudate,dealerid,cost,retail,sdiscount,category
期望输出:
Manufactuer Name - Stock Category - (Calculated Field)
Honda Sedan $XX.XX
我正在使用Oracle11gISQL
如果我的理解正确,任何帮助都将不胜感激。这就是你需要实现的目标
总数(库存)/数量(类别)>5000
select m.name,
s.category,
avg(retail)
from STOCK s ,
MANUFACTURER m
where
STOCK.DEALERID=MANUFACTURER.DEALERID
and (s.category='sedan' or s.category='suv')
Group by m.name,s.cateogry
Union
select m.name,
s.category,
avg(retail)
from STOCK s ,
MANUFACTURER m
where
STOCK.DEALERID=MANUFACTURER.DEALERID
AND (select(sum(retail) from
stock s ,manufacturer m
where STOCK.DEALERID=MANUFACTURER.DEALERID
and (s.category !='sedan' or s.category !='suv')
)/
select count(distinct category)
from stock s ,manufacturer m
where STOCK.DEALERID=MANUFACTURER.DEALERID
and (s.category !='sedan' or s.category !='suv') )) >5000
Group by m.name,s.cateogry
您可以根据自己的意愿提供$
符号和四舍五入
有更好的方法..但我会很快想到这一点..试着检查一下当你不使用mysql时,请不要使用
mysql
标记。@ITworldR你的query@Sachu当我运行这个安静的时候,我似乎为所有类别的平均价格产生了相同的价值。我注意到,第二个where子句手动计算大于5000的类别的所有值/计数之和的平均值,但不会产生任何结果results@ITworldRr你只对本田和通用汽车进行查询吗?@Sachu谢谢你的回复,不,我不是只为本田和通用运行它,该部分用于嵌套子查询。第二个WHERE子句假设在平均零售类别价格超过5000的基础上向输出中添加额外的行