2014-11-21 3 views
1

Я запускаю очень простой бит SQL и получаю очень странную ошибку, с которой я не могу объяснить.SQL Server - сбой преобразования

Я получаю следующее сообщение об ошибке:

Conversion failed when converting the nvarchar value '20.02.01' to data type int. 

Obviosuly Я бы искал что-то в моем запросе, который пытается преобразовать значение NVARCHAR к Int, но, как вы можете увидеть ниже ничего не делает, что !

Я не могу понять, почему это произойдет.

Пожалуйста, помогите!

SELECT R.ReservationsID, 
     R.CollectionCompanyName, 
     R.CollectionCompanyAddress1, 
     R.CollectionCompanyAddress2, 
     R.CollectionCompanyTown, 
     R.CollectionCompanyPostCode, 
     R.DeliveryCompanyName, 
     R.DeliveryCompanyAddress1, 
     R.DeliveryCompanyAddress2, 
     R.DeliveryCompanyTown, 
     R.DeliveryCompanyPostCode, 
     R.[DeliveryCompanyTel No], 
     hw.WasteName, 
     hw.WasteTicket, 
     hw.SizeName, 
     hw.Comments, 
     hw.QTY, 
     hw.OriginalOrderQty, 
     hw.gross, 
     hw.tare, 
     hw.Net, 
     C.PremisesCode, 
     pec.EwcCode, 
     pec.[Description] 'EWC Desc', 
     RI.SICCode, 
     lwt.WCode 'EWC', 
     R.ActualDeliveryTime, 
     R.ActualDeliveryDate 



FROM 
tblReservation R 
LEFT JOIN dbo.tblHazLinesWaste hw ON hw.resid = r.ReservationsID 
LEFT JOIN dbo.PdaEwcCode pec ON pec.HazCodeID = hw.EWCCodeID 
LEFT JOIN tblCustomer C ON C.CustomerID = R.CustomerID 
LEFT JOIN dbo.tblReservationItems RI ON RI.reservationsID = R.ReservationsID 
LEFT JOIN dbo.lookupWasteTypes lwt ON lwt.WCode = RI.EWCCodeID 

WHERE 
hw.Deleted != 1 
+5

Проверьте определения таблиц, все ли идентификаторы ID имеют одинаковые типы данных? В действительности это идентификатор резервирования как строка и hw.resid как bigint или uid? –

+0

Омг поставил это как ответ, и я соглашусь, я знаю, что случилось. –

+0

Рад помочь. –

ответ

2

Проверьте определения таблиц, все ли идентификаторы ID имеют одинаковые типы данных? В действительности это идентификатор резервирования как строка и hw.resid как bigint или uid?

+0

Yep - LEFT JOIN dbo.lookupWasteTypes lwt ON lwt.WCode = RI.EWCCodeID была проблема, спасибо, я просто не заметил. Будет принимать через 10 минут, когда это позволит мне. –

-1

У вас есть одинарные котировки для названий полей: pec.[Description] 'EWC Desc', и lwt.WCode 'EWC',. Это должны быть двойные кавычки. Одиночные кавычки предназначены для строковых литералов.

Кроме того, проверьте свои типы данных для полей в своих предложениях ON и в пункте WHERE, где вы сравниваете поля.

+0

Синтаксически одинарные кавычки подходят для столбцов сложения. –

+0

@ParanoidAndroid А, ты прав. Думаю, я просто иду туда и обратно между SQL Server, PostgreSQL и Oracle, поэтому я просто не могу использовать этот синтаксис. Синтаксис Oracle (и, следовательно, синтаксис PostgreSQL) не позволяет вам это делать. –

Смежные вопросы