SQL 比较股票 table,平均价格 + 10% 四舍五入和更新字段
SQL Compare stock table, Average Price + 10% Round up & Update Field
我有一个 SQL table 叫 tblStock
。它包含我公司出售的数千种库存的详细信息。它有以下列:
StockID
Make
Model
YearManufacture
Price
GuidePrice
对于此 table 中未售出的商品,我想根据已售出的库存数据,将预测销售价值添加到名为 GuidePrice
的字段中,
例如,如果我有以下项目:
StockID: 123456
Make: VW
Model: Beetle
YearManufacture: 1975
Price: 2000.00
GuidePrice:
我想根据我之前销售的所有 1975 年大众甲壳虫的价格计算指导价。
我想取 tblStock
中所有 1975 年大众甲壳虫的平均价格并加上 10%,然后四舍五入到最接近的 500.00 并插入 GuidePrice
列。
整体计算比这复杂,但这是我卡住的部分。如果有人能给我一些提示,我将不胜感激!
编辑:
这可以得到平均值,但我必须输入每个品牌、型号和年份
(然后四舍五入)
Update tblStock
set GuidePrice=(Select AVG(Price)
from tblStock
INNER JOIN
tblMake ON tblStock.Car_idMake = tblMake.idMake INNER JOIN
tblModel ON tblStock.Car_idModel = tblModel.idModel
where MakeD='Cat'
AND ModelD ='320CL'
AND YearManufacture='2004')
where idStock='140038410'
虽然这根本不起作用;
update tblStock t1
set GuidePrice = (select 1.10 * AVG(Price)
from tblStock t2
where t2.Car_idMake = t1.Car_idMake
and t2.Car_idModel = t1.Car_idModel
and t2.YearManufacture = t1.YearManufacture )
其中 idStock='140038410'
像这样更新特定的汽车:
update tblStock t1
set GuidePrice = (select 1.10 * avg(Price)
from tblStock t2
where t2.Make = t1.make
and t2.Model = t1.Model
and t2.YearManufacture = t1.YearManufacture)
where StockID = 123456
四舍五入到最接近的 500.00 仍然缺失。
您怎么知道汽车是已售出还是未售出?如果未售出,Price
是否为空?
如果是这种情况,并且您想为所有未售出的汽车更新 GuidePrice
,请将上面的 WHERE
子句替换为:
WHERE GuidePrice IS NULL
我有一个 SQL table 叫 tblStock
。它包含我公司出售的数千种库存的详细信息。它有以下列:
StockID
Make
Model
YearManufacture
Price
GuidePrice
对于此 table 中未售出的商品,我想根据已售出的库存数据,将预测销售价值添加到名为 GuidePrice
的字段中,
例如,如果我有以下项目:
StockID: 123456
Make: VW
Model: Beetle
YearManufacture: 1975
Price: 2000.00
GuidePrice:
我想根据我之前销售的所有 1975 年大众甲壳虫的价格计算指导价。
我想取 tblStock
中所有 1975 年大众甲壳虫的平均价格并加上 10%,然后四舍五入到最接近的 500.00 并插入 GuidePrice
列。
整体计算比这复杂,但这是我卡住的部分。如果有人能给我一些提示,我将不胜感激!
编辑: 这可以得到平均值,但我必须输入每个品牌、型号和年份 (然后四舍五入)
Update tblStock
set GuidePrice=(Select AVG(Price)
from tblStock
INNER JOIN
tblMake ON tblStock.Car_idMake = tblMake.idMake INNER JOIN
tblModel ON tblStock.Car_idModel = tblModel.idModel
where MakeD='Cat'
AND ModelD ='320CL'
AND YearManufacture='2004')
where idStock='140038410'
虽然这根本不起作用;
update tblStock t1
set GuidePrice = (select 1.10 * AVG(Price)
from tblStock t2
where t2.Car_idMake = t1.Car_idMake
and t2.Car_idModel = t1.Car_idModel
and t2.YearManufacture = t1.YearManufacture )
其中 idStock='140038410'
像这样更新特定的汽车:
update tblStock t1
set GuidePrice = (select 1.10 * avg(Price)
from tblStock t2
where t2.Make = t1.make
and t2.Model = t1.Model
and t2.YearManufacture = t1.YearManufacture)
where StockID = 123456
四舍五入到最接近的 500.00 仍然缺失。
您怎么知道汽车是已售出还是未售出?如果未售出,Price
是否为空?
如果是这种情况,并且您想为所有未售出的汽车更新 GuidePrice
,请将上面的 WHERE
子句替换为:
WHERE GuidePrice IS NULL