我正在使用SQL Compact Edition v4,并试图检索10个最畅销的商品。我的数据库有3个表:
1- 交易:交易可以出售或购买。包含TransID,日期
2- TransItems :列出在Transaction中销售/购买的商品,它按TransID字段引用Transactions表,并托管ItemID,Quantity。其中itemID是清单表中的ID
3- 广告资源:包含广告资源项的名称和编号,ID,ItemNo,ItemName
当我尝试执行以下查询时:
SELECT top(10) Inventory.ItemNo, Inventory.ItemName, Inventory.ItemSecondaryNo, Inventory.ItemSecondaryName, SUM(TransItems.Quantity) AS exp1
FROM TransItems INNER JOIN
Inventory ON Inventory.ItemID = TransItems.ItemID INNER JOIN
Transactions ON Transactions.ID = TransItems.TransID
WHERE (Transactions.Date BETWEEN @StartDate AND @EndDate)
GROUP BY Inventory.ItemNo, Inventory.ItemName, Inventory.ItemSecondaryNo, Inventory.ItemSecondaryName
ORDER BY exp1 DESC
我收到错误,但当我删除“top(10)”或“WHERE(Transactions.Date BETWEEN @StartDate AND @EndDate)”时,事情可行,但不是我需要的结果。我需要的是按日期过滤并获得最上面的行。
我得到的错误是 1- SQL执行错误:错误源:SQL Server Compact ADO.NET数据提供程序错误消息:缺少参数。[参数序号= 2] SQLCE
不提供2-顶级子句支持非常感谢