SQL Сервер SQL SELECT в Python не работает, когда поле предложения WHERE содержит пробел - PullRequest
0 голосов
/ 13 марта 2020

enter image description here У меня есть поле с именем 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)
...