所以我開始學習一些vb.net,並且我有以下的mysql語句來爲我的一個表中的列獲得一個不同的計數。它一直給我適合語法錯誤,但幾乎所有我讀過的東西都表明我擁有的應該是正確的。此外,我把它放到MySQL Workbench中,它工作正常,無論出於什麼原因,它只是拒絕在我的代碼中工作。Select 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()
我一直在敲我的頭這一段時間,現在,所以任何告訴我,幫助這有什麼錯,MySQL的聲明將不勝感激。
算出來了,COUNT和第一個之間的空間(這樣做是一件非常有趣的事情,它讓我久久不能相信,但我想這就是它的原因。大家好。
您可能需要添加周圍的參數'select_month'和'select_year'一些報價。另外,你應該使用[參數化查詢](http://stackoverflow.com/questions/542510/how-do-i-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錯誤: 錯誤[42000] [MySQL] [ODBC 3.51驅動程序] [mysqld-5.6.11]您的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,以在'*)FROM(SELECT DISTINCT defect_code FROM daily_data)附近使用正確的語法WHERE MONTH(date)= 6 AND YE'在第1行 – user2498668