運行它時我做一個聯盟的所有超過2級不同分貝的我得到這個錯誤時失敗:轉換轉換VARCHAR數據類型爲int,但沒有被定義爲int
消息245,級別16,狀態1,第16行 將varchar值「12037.5」轉換爲數據類型int時轉換失敗。
但我的列沒有一個是整數類型?出於某種原因,它將Main選擇類型更改爲整數。
DECLARE @SAGESTARTDATE AS DATETIME,
@SAGEENDDATE AS DATETIME,
@SAGEITEM AS NVARCHAR(50),
@SPSSTARTDATE AS DATETIME,
@SPSENDDATE AS DATETIME,
@SPSCOUNTRY AS NVARCHAR(50)
set @sagestartdate = '2017-01-15'
set @sageenddate = '2017-01-15'
set @sageitem = 'diesel 50ppm'
set @spsstartdate = '2017-01-15'
set @spsenddate = '2017-01-15'
set @spscountry = 'dRC'
Select FleetNo, TxDate, Max(STCode) as StCode, SageRev, SageQty, Max(SagePrj) as SagePrj,
MAx(SPSType) as SPSType, MAx(SPSModel) as SPSModel, MAX(SPSSite) as SPSSite, Max(SPSCountry) as SPSCountry,
SPSFuel
From (
Select Strans.[Description] COLLATE SQL_Latin1_General_CP1_CI_AS as FleetNo
, Strans.TxDate as TxDate
, StMstr.Code as STCode
, Strans.[Reference] as SageRev
, Strans.Quantity as SageQty
, STrans.ProjectCode as SagePrj
, 0 AS SPSTYPE
, 0 AS SPSMODEL
, 0 AS SPSSITE
, 0 AS SPSCOUNTRY
, 0 as SPSFuel
from [KCS SARL].DBO._bvSTTransactionsFull STrans join
[KCS SARL].DBO._bvStockFull StMstr on STrans.AccountLink = StMstr.StockLink
Where Code = @SAGEITEM and Strans.TxDate BETWEEN @SAGESTARTDATE AND @SAGEENDDATE
UNION ALL
Select SPSTr.FleetNo as FleetNo
, SPSTR.ProdDate AS TxDate
, 0 as STCode
, 0 as SageRev
, 0 as SageQty
, 0 AS SagePrj
, SPSTR.EqType AS SPSTYPE
, SPSTR.ModelName AS SPSMODEL
, SPSTR.SiteName AS SPSSITE
, SPSTR.Country AS SPSCOUNTRY
, SPStr.Fuel as SPSFuel
From [SPS].dbo.DataInputTotal SPStr
Where SPStr.WCode = 102 and SPSTR.ProdDate BETWEEN @SPSSTARTDATE and @SPSENDDATE
AND SPSTR.Country = @SPSCOUNTRY
) as Fuel
Group By FleetNo, TxDate, SageRev, SageQty, SPSFuel
Order by FleetNo
輝煌!謝謝你,這是造成這個問題的原因。 –
@MardusDavel樂於幫助! – SqlZim