我有一个 WinForms 客户端应用程序,它使用参数执行以下 SQL 语句。
SELECT a.CaseNo, (c.Claimant + ' -v- ' + c.Defendant) AS CaseName,
a.Allocation - ISNULL(LAG(a.Allocation)
OVER (PARTITION BY a.CaseNo, a.FeeEarner ORDER BY a.AllocID), 0) AS Billing, a.AllocID
FROM tblAllocations AS a INNER JOIN tblCases AS c ON a.CaseNo = c.CaseNo
WHERE a.CaseNo > 0 AND FeeEarner = @FeeEarner
AND a.Date >= @StartDate
AND a.Date <= @EndDate ORDER BY a.Date;
当我在进行开发工作的笔记本电脑上运行此程序时,查询执行没有问题。返回的信息用于填充客户端应用程序中的数据网格。我正在使用 SQL Server 2012 Express。
但是,当在我的客户场所运行完全相同的客户端应用程序时,代码会返回错误。大多数错误消息是由我的应用程序生成的,它使我能够查明代码中出现问题的位置。但是,在我附加系统生成错误的消息末尾,我得到以下信息:
The parallel data warehouse (PDW) features are not enabled
我以前从未见过此消息,因此无法确定问题所在。我尝试用 Google 搜索此错误消息,但没有发现任何有用的信息。我的客户正在使用 SQL Server 2008 R2 Express。
PDW 是 SQL Express 2012 中的一项功能,但 2008 R2 版本中没有?
我的查询需要 PDW 是怎么回事?
是否使用了 PARTITION,因为这是导致问题的查询之前我之前没有使用过的关键字?
在不让客户更改他们的 SQL 版本的情况下,有什么方法可以解决这个问题,例如通过更改我的 SQL 查询或在 SQL 中启用某些东西?
非常感激任何的帮助。