Я хочу использовать переменную, как это:Использование переменной в SQLAlchemy фильтр
myVariable = 0.5
myQuery.filter(myTable.column1 == myVariable*myTable.column2)
У меня тогда никаких результатов, когда я применяю все() к myQuery. Если я заменил переменную на ее значение, это нормально.
queryBidOffer = session.query(BidOffer.id, BidOffer.price, BidOffer.qmin, BidOffer.qmax)
queryBidOffer = queryBidOffer.join(Equipment).filter(BidOffer.equipment==Equipment.id, Equipment.equipment_type.in_(['L','P','W','M']))
queryBidOffer_day = queryBidOffer.filter(BidOffer.day == day)
queryBidOffer_hour = queryBidOffer_day.filter(BidOffer.start_hour == timeSlice)
queryBidOffer_hour = queryBidOffer_hour.join(EquipmentDayHour, BidOffer.equipment == EquipmentDayHour.equipment)
queryBidOffer_hour = queryBidOffer_hour.filter(EquipmentDayHour.day == day)
queryBidOffer_hour = queryBidOffer_hour.filter(EquipmentDayHour.hour == timeSlice)
factor1 = 1.00 - 0.07
queryBidOffer_hour = queryBidOffer_hour.filter(BidOffer.equipment == EquipmentDayHour.equipment, factor1*func.abs(EquipmentDayHour.ref_prog) == 930)
Проблема с двумя последними строками (factor1). В последней строке, если я заменил factor1 на его значение, все в порядке.
Сюрприз! Если я заменю последнюю строку, а одну на коэффициент 1 = 0,93, она работает ... – Oodini
Когда я устанавливаю factor1 = 0.93, его значение в запросе равно 0.93000000000000005. Когда я устанавливаю factor1 = 1-0.07, его значение в запросе равно 0.92999999999999994. Значение в базе данных составляет 0,93 * 1000. – Oodini