Sql 并行数据仓库(PDW)功能未启用
我有一个WinForms客户端应用程序,它使用参数执行以下SQL语句Sql 并行数据仓库(PDW)功能未启用,sql,sql-server,Sql,Sql Server,我有一个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
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 2008 R2 Express
PDW是SQL Express 2012中的一项功能,而不是2008 R2版本中的功能吗
我的查询需要PDW的是什么
是不是因为分区的使用,因为这是一个关键字,我以前没有使用过,直到这个查询导致了问题
在不让客户更改其SQL版本的情况下,是否有任何方法可以解决此问题(例如,通过更改我的SQL查询或启用SQL中的某些内容)
非常感谢您的帮助。该命令仅在SQL Server 2012中受支持
尽管我对这个错误感到惊讶,如果这就是问题所在
-编辑-
要在不使用延迟的情况下复制查询,请执行以下操作:
这基本上是从我刚才提到的观点中提出来的
SELECT
a.CaseNo,
(c.Claimant + ' -v- ' + c.Defendant) AS CaseName,
a.Allocation - ISNULL((
CASE
WHEN N%2=1
THEN MAX(CASE
WHEN N%2=0
THEN a.Allocation
END)
OVER (Partition BY N/2)
ELSE MAX(CASE
WHEN N%2=1
THEN a.Allocation
END)
OVER (Partition BY (N+1)/2)
END
), 0) AS Billing,
a.AllocID
FROM tblAllocations AS a
LEFT JOIN (SELECT
Row_Number() OVER(ORDER BY b.Id) N,
b.Id
FROM tblAllocations as b) AS RowNum
ON RowNum.id=a.id
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;
以下是演示:
The parallel data warehouse (PDW) features are not enabled
是否可以修改查询以避免此问题,但返回相同的数据?这可能会有所帮助嗯-我尝试了您的代码,并收到错误消息ISNULL命令需要两个参数。但这很奇怪,因为,0包含在代码中,并且是第二个参数。有什么想法吗?我想我们现在缺少了一个封闭的括号,因为之前的选择从未关闭过,但我不清楚这应该去哪里。我已经标记为答案,因为这肯定让我走上了正确的方向,我认为-谢谢。