很长一段时间潜伏着第一个问题。 SQL新手,我正在尝试通过遵循此处不再使用的人员编写的代码进行货币转换。我一直在关键字' AS'附近收到错误"错误的语法。"我无法弄明白为什么。我基本上使用我们的内部交换表将每加仑的美元价格换算成CND $的PPL。让我头疼,因为我通常可以在某处找到答案。
SQL Server 2005
CASE
WHEN
CONVERT(DECIMAL(10,3),([Tractor Cost]-(([Tractor Cost]/([Tractor Cost]+[Reefer Cost])) * [Rebate Amount]) )/[Tractor Gallons]) is NULL THEN 0
ELSE
CONVERT(DECIMAL(10,3),([Tractor Cost]-(([Tractor Cost]/([Tractor Cost]+[Reefer Cost])) * [Rebate Amount]) )/[Tractor Gallons]) * 3.785 *
CASE
WHEN [Currency Type] = 'U' THEN
(SELECT TOP 1 cex_rate
FROM dbo.currency_exchange
WHERE [Transaction Date] >= [cex_date]
ORDER BY cex_date DESC
)
ELSE 0
END AS 'Tractor Rebate Price',
答案 0 :(得分:0)
您需要使用CASE
关闭END
语句。
我认为这是你的问题。您有2 CASE
次使用,但只有1 END
。