我想创建一个表[Top Stores],在销售产品数量方面有10个最活跃的商店。每家商店出售3种产品。我只需要为每个产品添加销售数量即可到达StoreSale。 问题是当产品没有销售时,数量值留空而不是0. 我尝试通过isnull测试将空白更改为0。请在下面的代码中指出错误:
SELECT top 10 StoreName, StoreSale = (iif (isnull(Product1), 0, Product1) + iif (isnull(Product2), 0, Product2) + iif (isnull(Product3), 0, Product3)) INTO [Top Stores]
FROM SaleTable ORDER BY StoreSale DESC;
答案 0 :(得分:1)
两件事:
如果您使用=
,您将进行相等测试,您不能在SQL中进行类似的任务。
您需要将计算结果命名为AS StoreSale
。
当字段值为Nz()
0.00
获取NULL
醇>
结果:
SELECT TOP 10 StoreName,
Nz(product1) + Nz(Product2) + Nz(Product3) AS StoreSale
INTO [Top Stores]
FROM SaleTable
ORDER BY StoreSale DESC;