嵌套 SQL 和带有 WHERE CLAUSE ISSUE 的计算字段
Nested SQL and calculated field with WHERE CLAUSE ISSUE
我正在尝试进行以下查询:
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
的 HONDA 和 GM 的平均零售价
- 我还想列出所有品类的平均零售价超过5000
TABLE 格式:
MANFACTURER: DEALERID#,name,phone,state
STOCK: VIN#,name,pudate,dealerid,cost,retail,sdiscount,category
期望的输出:
Manufactuer Name - Stock Category - (Calculated Field)
Honda Sedan $XX.XX
我正在使用 oracle 11g isql
任何帮助将不胜感激
如果我的理解是正确的..这就是你需要达到的目标
- 需要显示轿车和suv的平均零售价
- 需要显示除轿车和suv以外的其他品类的平均零售价if
总和(库存)/计数(类别)> 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
您可以根据自己的意愿给出 $
符号和 roundings
可以有更好的方法..但我很快想到了这个..试着检查一下
我正在尝试进行以下查询:
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 的 HONDA 和 GM 的平均零售价
- 我还想列出所有品类的平均零售价超过5000
TABLE 格式:
MANFACTURER: DEALERID#,name,phone,state
STOCK: VIN#,name,pudate,dealerid,cost,retail,sdiscount,category
期望的输出:
Manufactuer Name - Stock Category - (Calculated Field)
Honda Sedan $XX.XX
我正在使用 oracle 11g isql
任何帮助将不胜感激
如果我的理解是正确的..这就是你需要达到的目标
- 需要显示轿车和suv的平均零售价
- 需要显示除轿车和suv以外的其他品类的平均零售价if
总和(库存)/计数(类别)> 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
您可以根据自己的意愿给出 $
符号和 roundings
可以有更好的方法..但我很快想到了这个..试着检查一下