工作我有這樣的代碼: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格式指定日期。在大多數情況下,你也不需要[]周圍的名字。 –