Итак, я начинаю изучать некоторые vb.net, и у меня есть следующая инструкция mysql для получения отдельного счета для столбца в одной из моих таблиц. Это давало мне возможность синтаксических ошибок, но почти все, что я прочитал, указывает на то, что я должен быть прав. Кроме того, я взял его в MySQL Workbench, и он отлично работает, по какой-то причине он просто отказывается работать в моем коде.Выберите Count Distinct Syntax, vb.net
Dim sRetrieve As String
Dim numvals As OdbcDataReader
sRetrieve = "SELECT COUNT (DISTINCT defect_code) FROM daily_data WHERE MONTH(date)=" & select_month & " AND YEAR(date)=" & select_year
Dim query_exe As New Odbc.OdbcCommand(sRetrieve, cn)
numvals = query_exe.ExecuteReader()
Я стучал голову против этого на некоторое время теперь, так что любая помощь говорит мне, что случилось с этим туздо заявлением была бы весьма признателен.
Выяснил это, пространство между COUNT и первым (делало это. Такое смехотворно маленькое дело, что он так долго поддерживал меня, но я думаю, что так оно и есть. Спасибо за помощь, все.
Вам может понадобиться, чтобы добавить некоторые кавычки параметров '' select_month' и select_year'. Кроме того, вероятно, вы должны использовать [параметризованные запросы] (http://stackoverflow.com/questions/542510/how-do-create -a-parameterized-sql-query-why-should-i), а не конкатенация строк. – jbabey
Запрос выглядит хорошо, насколько это возможно. Каковы значения (и типы данных) 'select_month' и' select_year'? И как он «отказывается работать»? Есть ли ошибка MySQL? Ошибка VB? –
Стоящие котировки вокруг него, похоже, не тряслись. select_month и select_year - это целые числа, которые задаются на основе значений, выбранных пользователем из выпадающего списка формы. Например, select_month может быть 6, select_year может быть 2013. Это ошибка MySQL: ERROR [42000] [MySQL] [ODBC 3.51 Driver] [mysqld-5.6.11] У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии сервера MySQL, для правильного синтаксиса, используемого рядом с * *. FROM (SELECT DISTINCT defect_code FROM daily_data) ГДЕ МЕСЯЦ (дата) = 6 И YE 'в строке 1 – user2498668