我希望提高我的SQL技能,我发现这个练习没有解决方案。练习是这样进行的:生产部门需要分析那些把自行车这个词作为其分类名称的一部分的产品,以及3K到4K之间的单价。(K )所需资料如下:
产品: ID、Name、Color、reorderpoint、标准成本、safetystocklevel级、listprice、daystomanufacture模型名和Description子类别名称类别名称考虑到standardcost字段应该只显示两个小数-数据类型:十进制(10,2) 单击此处获取AdventureWorks架构
到目前为止,我的解决方案如下:
SELECT p.ProductID, p.Name, p.Color, p.reorderpoint, p.StandardCost, p.SafetyStockLevel, p.listprice, p.DaysToManufacture, pm.Name, pd.Description, psc.Name, pc.Name
FROM Product p LEFT JOIN ProductModel pm
ON p.ProductModelID = pm.ProductModelID
LEFT JOIN ProductModelProductDescriptionCulture pmpdc
ON p.ProductModelID = pmpdc.ProductModelID
LEFT JOIN ProductDescription pd
ON pd.ProductDescriptionID = pmpdc. ProductDescriptionID
LEFT JOIN ProductSubcategory psc
ON psc.ProductSubCategory = p.ProductSubCategory
LEFT JOIN ProductCategory pc
ON pc.ProductCategoryID = psc.ProductCategoryID
WHERE UPPER(psc.Name) LIKE “BIKE%” AND p.listprice BETWEEN 3000 AND 4000 ; 我不知道为什么,但我想我可能有一些问题,或者可能一切都不对劲。
发布于 2022-01-20 14:06:50
psc.ProductSubCategory = p.ProductSubCategory应该是psc.ProductSubCategoryid = p.ProductSubCategoryid
和
“自行车%”应该是‘自行车%’
而在adventureworks2012,这是我必须交的最后一个版本,有12辆自行车返回使用您的查询作为固定,但不是在价格范围内,您正在寻找。我建议您在进一步调查时,使用where条款修正并运行,不包括价格。
发布于 2022-01-20 14:09:12
查看Adventure数据库,产品子类别表中的名称为山地自行车和公路自行车,所以where子句应该是‘%自行车’
https://stackoverflow.com/questions/70787232
复制相似问题