2011-02-06 16 views
0

Я получаю синтаксическую ошибку, и я не уверен, что я делаю неправильно, любая помощь будет высоко оценена.sql синтаксис с арифметикой

INSERT INTO mashstp (mid, name, time, temp, desc) 
    VALUES ('#mid#', '#mashstXML.mash_step.name.xmltext#', 
    '(#mashstXML.mash_step.step_temp.xmltext# * 1.8) + 32 F', 
    '#mashstXML.mash_step.description.xmltext#')   
+0

Из внешнего вида вы называете 5 столбцов для вставки, но только вставляете 4 значения. –

+0

В то время как это было легко обнаружить, в будущем, пожалуйста, укажите сообщение об ошибке, когда вы просите о помощи при исправлении ошибки. –

+0

Это те настоящие имена колонок? Потому что 'DESC' является зарезервированным словом в большинстве баз данных. Поэтому не лучший выбор для имени столбца. 'MID' и' TIME' также являются зарезервированными ключевыми словами в некоторых базах данных. – Leigh

ответ

4

Вы называете 5 столбцов, но пропускаете только 4 значения.

mid  '#mid#' 
name '#mashstXML.mash_step.name.xmltext#' 
time 
temp '(#mashstXML.mash_step.step_temp.xmltext# * 1.8) + 32 F' 
desc '#mashstXML.mash_step.description.xmltext#' 

Я думаю, что этого не хватает time.

+0

хорошо, я уверен, чувствую себя дураком. Спасибо. – rajh2504

1

Вы должны указать пять столбцов для получения значений, но только четыре значения.

2

Кажется, что у вас есть ваша арифметика внутри строки, которую вы вставляете. Преобразуйте текст в число, а затем выполните математику:

convert(float,'#mashstXML.mash_step.step_temp.xmltext#') * 1.8 + 32.0