У меня есть поле с именем FieldName. Если FieldName равно M, тогда запрос работает нормально. Однако, если FieldName - Big Hill, я получаю результаты None в моем текстовом поле Tkinter. Не уверен, как получить, чтобы убедиться, что один из них я могу изменить так, чтобы весь результат считался не просто первым словом. def field_name генерирует список имен полей. Пользователь выбирает одно из FieldNames, и оно используется в def avg10112 в качестве предложения WHERE. Наконец, результаты помещаются в текстовое поле с помощью def insert_AVG10112. В этом поле будет отображаться None, если предложение WHERE содержит пробел, как описано выше (BigHill против Big Hill).
Редактировать: я добавил скриншот Combobox. Одиночные значения fieldNames работают, а остальные (Buffalo Valley) не работают.
def avg10112(self):
sql=("SELECT FORMAT(AVG([DailyCosts].DailyCost),'#,##0') AVG FROM [DailyCosts] "
"JOIN [WellConfig] ON DailyCosts.[WellID] = WellConfig.[WellID] "
"WHERE [FieldName] = ? AND DailyCost IS NOT NULL AND DailyCosts.AccountCode IN('10112','11103','7108') ")
self.cursor.execute(sql, [self.field_bx.get()])
row = self.cursor.fetchall()
return row
def field_Name(self):
self.cursor.execute("SELECT DISTINCT FieldName FROM WellConfig ")
row = self.cursor.fetchall()
return row
def insert_Avg10112(self):
self.cost102_avg.delete(1.0, 'end')
for row in self.avg10102():
self.cost102_avg.insert ('end', row)