Consulta sobre query

Señores estoy desesperado, ¿estoy haciendo una app en vb6 tengo dos tablas el acess 2000 una de pedidos y una de abonos no?
Bueno, en las dos tablas hay un campo llamado numero de factura cuando quiero hacer una consulta sobre todas las facturas de un determinado mes no me sale bien. La consulta es la siguiente:
cmdrss.CommandText = "(SELECT ABONOS.A_NFACT,ABONOS.A_ID_CLI,ABONOS.A_ID_ABONO,clientes.c_nomb,ABONOS.A_desde,ABONOS.A_hasta,ABONOS.A_nota,ABONOS.A_imp,clientes.c_id_cli FROM ABONOS INNER JOIN CLIENTES ON ABONOS.A_ID_CLI=CLIENTES.C_ID_CLI where a_desde between #" & DTPicker1.Value & "# and #" & DTPicker2.Value & "#) UNION
(SELECT PEDIDOS.ID_FACTURA,PEDIDOS.ID_CLI,PEDIDOS.ID_PEDIDO,clientes.c_nomb,PEDIDOS.P_FECHA,PEDIDOS.ID_DESC,PEDIDOS.COMENTARIO,PEDIDOS.ID_ORDEN,clientes.c_id_cli FROM PEDIDOS INNER JOIN clientes ON PEDIDOS.id_cli = clientes.c_id_cli where P_FECHA between #" & DTPicker1.Value & "# and #" & DTPicker2.Value & "#)"
¿En qué me estoy equivocando? Gracias
Sus respuestas serán muy bien valoradas saludos a todos
guS

1 respuesta

Respuesta
1
Estimado aparentemente el problema lo tienes en el where
Reemplazalo por lo siguiente
where datepart(mm,a_desde) = <Mes numero (1-12)>
La función datepart te permite sacar la parte de una fecha donde el ejemplo que te estoy mostrando devuelve el mes como integer, por lo que tienes que igualarlo con un numero del mes que corresponde, ej. si quieres el mes de octubre
where datepart(mm,a_desde) = 10
Lo otro que tienes que tener en cuenta es que cuando haces "Union" debes tener la misma cantidad de campos en los 2 select

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas