Buenos dias! estoy comenzando en Python y me encuentro atascado con una query sql que recibe parametros como filtro de campos fecha desde…hasta y un campo tipo lista con la seleccion de uno o mas comprobantes, con .format(‘,’.join(‘?’*len(lista)) consegui enviar a la consulta tantos parametros como valores tenga la lista pero al agregar parametro de fecha da error de cantidad de parametros:
-
solo con el parametro de lista de comprobantes funciona:
def querysql(lista):
query=(“”“SELECT FECHA_VTO,COD_PROVEE,N_COMP,IMPORTE FROM PAGOS_BANCO WHERE N_COMP IN ({})”“”.format(‘,’.join(‘?’*len(lista))),lista)
print(query)
(‘SELECT FECHA_VTO,COD_PROVEE,N_COMP,IMPORTE FROM PAGOS_BANCO WHERE N_COMP IN (?,?)’, [‘A0000100000504’, ‘A0000400002546’]) -
Agregando el parametro de fecha da error de cantidad de parametros:
def querysql(lista,fecha1):
query=(“”“SELECT FECHA_VTO,COD_PROVEE,N_COMP,IMPORTE FROM PAGOS_BANCO WHERE N_COMP IN ({}) AND FECHA_VTO>{}”“”.format(‘,’.join(‘?’*len(lista)),‘?’),lista,fecha1)
print(query)
(‘SELECT FECHA_VTO,COD_PROVEE,N_COMP,IMPORTE FROM PAGOS_BANCO WHERE N_COMP IN (?,?) AND FECHA_VTO>?’, [‘A0000100000504’, ‘A0000400002546’], ‘15-05-2000’)
pyodbc.ProgrammingError: (‘The SQL contains 3 parameter markers, but 2 parameters were supplied’, ‘HY000’)
gracias por la ayuda o algun consejo!