工作我有这样的代码:SQL Server查询未在德尔福
DECLARE @top VARCHAR(2000)
DECLARE @sql VARCHAR(4000)
SELECT @top =STUFF((SELECT DISTINCT
'],['+ ltrim([itemID])
FROM ARInvDet
ORDER BY '],['+ ltrim([itemID])
FOR XML PATH('')
), 1, 2, '')+']'
SET @sql ='
SELECT ItemID,Quantity,Price FROM(
select * From (
select
a.CustomerID as [CustomerID],
a.DateFinalize as [Date],
ad.Quantity as [Quantity],
ad.UnitPrice as [Price],
i.ItemTypeID as [ItemTypeID],
i.ItemID as [ItemID]
from ARInvDMS a
inner join ARInvDet ad on a.ARInvoiceID = ad.ARInvoiceID
inner join item i on ad.ItemID = i.ItemID
WHERE CustomerID = 10056 and a.[DateFinalize] = CONVERT(DATETIME,''2/28/2014'', 102)
and i.[ItemTypeID] = 1
) src
PIVOT
(
SUM(Quantity)
FOR [ItemID] in ('[email protected]+')
) as pvt
) as src2
UNPIVOT
(
Quantity FOR ItemID in ('[email protected]+')
) as unpvt
'
execute(@sql)
错误是附近有语法错误“2”:它从WHERE语句..但我试图运行在SQL Server验证码2008 r2 ..及其工作正常..但是当我在我的delphi程序中使用此..出现此错误..请帮助。
您在Delphi中如何运行此代码?请注意,你需要一些'处理 – Kromster
你没有提供任何有关你如何在Delphi代码中使用它的信息。如果您不发布Delphi代码,我们无法帮助您解决Delphi代码的问题。 “我的头很疼,这是我的脚的图片,为什么我的头受伤了?”这不是一个可以回答的问题。 –
首先尝试SSMS中的SQL以确保它是正确的。例如,使用'],@top中的['不适合我。其他一些观点 - 如果DateFinalize是日期时间,那么你不需要转换。我建议你总是用yyyymmdd格式指定日期。在大多数情况下,你也不需要[]周围的名字。 –