Как выбрать из таблицы, где текстовое поле = формула с агрегатами (Xojo+ SQLite)

У меня есть таблица со столбцами;

  • ФИО,
  • № группы,
  • Дата,
  • Расписание,
  • Крамаунт,
  • Драмаунт,
  • количество

Я хочу выбрать те столбцы, где textbox111.text больше, чем формула SUM(Cramount)*26/(SUM(Dramount+Iamount)).

Приведенный ниже SQL дает мне синтаксическую ошибку, может кто-нибудь помочь мне, пожалуйста, БАЗА ДАННЫХ ЯВЛЯЕТСЯ SQLITE И ПРОГРАММИРОВАНИЕ В XOJO.

 sql= "SELECT Fullname, GroupNo, Tdate, Schedule,( SUM(Cramount)*26)/SUM(Dramount+Iamount) AS ok FROM Trans WHERE Branchcode = '1210 - Loans'GROUP BY LoanID  HAVING SUM(Cramount)*26/(SUM(Dramount+Iamount)) < '"TextBox111.text'""

person Subira Lukumay    schedule 05.02.2018    source источник
comment
привести в порядок форматирование   -  person jeff porter    schedule 05.02.2018


Ответы (1)


В вашей строке SQL есть пара неправильных вещей, у вас есть одинарная и двойная кавычки после TextBox111.text неправильно, и вам нужно объединить это управляющее значение с «+», поскольку Xojo не выполняет интерполяцию строк.

Попробуйте что-то вроде:

sql= "SELECT Fullname, GroupNo, Tdate, Schedule, (SUM(Cramount)*26)/SUM(Dramount+Iamount) AS ok FROM Trans WHERE Branchcode = '1210 - Loans' GROUP BY LoanID HAVING SUM(Cramount)*26/(SUM(Dramount+Iamount)) < '" + TextBox111.text + "'"

Я почти уверен, что SQLite поддерживает использование псевдонима для совокупного поля в предложении с...

sql= "SELECT Fullname, GroupNo, Tdate, Schedule, (SUM(Cramount)*26)/SUM(Dramount+Iamount) AS ok FROM Trans WHERE Branchcode = '1210 - Loans' GROUP BY LoanID HAVING ok < '" + TextBox111.text + "'"

Ваш SQL также ссылается на два поля, которые вы не упомянули в своей таблице, Branchcode и LoanID, надеюсь, вы просто забыли их упомянуть.

person ianmjones    schedule 06.02.2018