嗨我想根據第3列中的內容計算2列值。根據第3列值計算2列
下面的錯誤代碼將數據類型varchar轉換爲數字時出錯。
我相信它試圖將貨幣列設置爲新值而不是測試。
任何人都可以幫助我的語法。
謝謝。
SELECT dbo.ORDR.DocTotal,
dbo.ORDR.DocTotalFC,
test = case
when dbo.RDR1.Currency = 'GBP' then dbo.ORDR.DocTotal - dbo.ORDR.VatSum
when dbo.RDR1.Currency = 'USD' then dbo.ORDR.DocTotalFC - dbo.ORDR.VatSumFC
when dbo.RDR1.Currency = 'EUR' then dbo.ORDR.DocTotalFC - dbo.ORDR.VatSumFC
else 'other'
end
FROM dbo.RDR1 INNER JOIN
dbo.ORDR ON dbo.RDR1.DocEntry = dbo.ORDR.DocEntry
你有樣品數據和所需的輸出? – Tanner
在猜測,我會說'DocTotal'或'VatSum'不是數字數據類型,因此在子句中的減法失敗....但你需要向我們展示模式和數據,否則我們'重新猜測。 – Tanner
您不能隨意決定將此列中的值設置爲varchar,而對於其他行,則爲varchar。您必須爲所有行中的給定列使用單一數據類型。你的情況表達式正在做數學或返回一個字符串文字。您需要在那裏返回NULL或強制您的計算值爲varchar。 –