Функция запрашивает транзакции из базы данных. Я могу заставить их работать индивидуально. Есть ли способ заставить функцию запрашивать данные на основе, скажем, имени клиента И диапазона дат, не делая еще одного оператора «если»?
def query_data(c, dateRange=None, customer_name=None, customer_id=None, customer_date=None):
if customer_name is not None:
query_where = 'customer_name=?'
query_args = [customer_name]
query_where = f'{query_where}'
if customer_id is not None:
query_where = 'customer_name=(SELECT customer_name FROM customers WHERE customer_id=?)'
query_args = [customer_id]
query_where = f'{query_where}'
if customer_date is not None:
query_where = 'order_date=?'
query_args = [customer_date]
query_where = f'{query_where}'
if dateRange is not None:
split_date = dateRange.split(",")
query_where = 'order_date BETWEEN DATE(?) AND DATE(?)'
query_args = [split_date[0], split_date[1]]
query_where = f'{query_where}'
query_string = f"SELECT * FROM transactions WHERE {query_where}"
c.execute(query_string, query_args)
return c.fetchall()