2013-06-08 4 views
0

Я получаю эту ошибку:необработанное SqlException

Incorrect syntax near the keyword 'INNER'. The label 'Count' has already been declared. Label names must be unique within a query batch or stored procedure.

мой запрос:

SELECT MAX(PatDiseasTreatment_tbl.improvement_rate) disease_tbl INNER 
JOIN PatDiseasTreatment_tbl ON disease_tbl.disease_id = 
PatDiseasTreatment_tbl.disease_id INNER JOIN patient_tbl ON 
PatDiseasTreatment_tbl.patient_id = patient_tbl.patient_id INNER JOIN 
treatment_tbl ON PatDiseasTreatment_tbl.treatment_id = 
treatment_tbl.treatment_id WHERE disease_tbl.MDdisease_name = " + 
comboBox2 + " AND patient_tbl.age = " + comboBox1; 

Я не знаю, что это ошибка и как ее решить.

+1

У меня отсутствует ключевое слово 'FROM'. 'SELECT [] FROM some_table INNER JOIN another_table ON some_table.field = another_table.field_2 WHERE something = 1 AND something_else = 2' будет основным синтаксисом – scones

+1

, пожалуйста, не создавайте еще один эксплойт sql injection. Используйте параметры вместо '+ comboBox1' и' + comboBox2'. –

ответ

1

Правильного форматирование ваш друг:

SELECT MAX(PatDiseasTreatment_tbl.improvement_rate) 
FROM disease_tbl 
INNER JOIN PatDiseasTreatment_tbl ON disease_tbl.disease_id = 
    PatDiseasTreatment_tbl.disease_id 
INNER JOIN patient_tbl ON 
    PatDiseasTreatment_tbl.patient_id = patient_tbl.patient_id 
INNER JOIN treatment_tbl ON PatDiseasTreatment_tbl.treatment_id = 
    treatment_tbl.treatment_id 
WHERE disease_tbl.MDdisease_name = " + 
comboBox2 + " AND patient_tbl.age = " + comboBox1; 

, которого не имеет "ОТ"

+0

'FROM some_table ON' не работает. У части FROM нет 'ON'. Вы могли бы захотеть поместить его в 'WHERE section – scones

+0

@scones. Я был наполовину прав:/FROM отсутствовал до disease_tbl. Исправлено сейчас :) – Bohemian

+0

aye, кажется правильным сейчас – scones

1

Попробуйте

SELECT MAX(PatDiseasTreatment_tbl.improvement_rate) 
FROM disease_tbl 
INNER JOIN PatDiseasTreatment_tbl ON disease_tbl.disease_id = 
    PatDiseasTreatment_tbl.disease_id 
INNER JOIN patient_tbl ON 
    PatDiseasTreatment_tbl.patient_id = patient_tbl.patient_id 
INNER JOIN treatment_tbl ON PatDiseasTreatment_tbl.treatment_id = 
    treatment_tbl.treatment_id 
WHERE disease_tbl.MDdisease_name = " + 
comboBox2 + " AND patient_tbl.age = " + comboBox1; 
0

певце необходимо упомянуть из пункта в вашем отборном заявлении.

 
SELECT MAX(PatDiseasTreatment_tbl.improvement_rate) disease_tbl FROM 'YOUR_TABLE_NAME) 
INNER JOIN PatDiseasTreatment_tbl ON disease_tbl.disease_id =PatDiseasTreatment_tbl.disease_id INNER JOIN patient_tbl ON PatDiseasTreatment_tbl.patient_id = patient_tbl.patient_id INNER JOIN treatment_tbl ON PatDiseasTreatment_tbl.treatment_id =treatment_tbl.treatment_id WHERE disease_tbl.MDdisease_name = " + comboBox2 + " AND patient_tbl.age = " + comboBox1;