添加“where”条件时,top子句不起作用

时间:2013-02-18 12:23:07

标签: sql-server-ce

我正在使用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-顶级子句支持

非常感谢

0 个答案:

没有答案