Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Ayuda sql access

Estas en el tema de Ayuda sql access en el foro de Bases de Datos General en Foros del Web. Buenas, no se si va aqui este tema pero no se donde meterlo y dudo que en ofimática me lo contesten. Mi problema es que ...
  #1 (permalink)  
Antiguo 30/07/2009, 03:58
 
Fecha de Ingreso: noviembre-2007
Mensajes: 44
Antigüedad: 16 años, 5 meses
Puntos: 0
Ayuda sql access

Buenas, no se si va aqui este tema pero no se donde meterlo y dudo que en ofimática me lo contesten.

Mi problema es que tengo una consulta sql que no me funciona.
Es la siguiente:

SELECT loxtyf.cli_codigo, loxtyf.cli_nombre, loxtyf.cli_dni, c.cli_descrip, t.tom_nombre, h.hid_nombre, loxtyf.par_codigo, loxtyf.zon_codigo, SUM(loxtyf.htom_vactual) as VolumenTotal
FROM lecturas_ordenadas_x_toma_y_fecha AS loxtyf
INNER JOIN cliente AS c ON loxtyf.cli_id = c.cli_id
INNER JOIN toma AS t ON loxtyf.tom_id = t.tom_id
INNER JOIN hidrante AS h ON loxtyf.hid_id = h.hid_id
WHERE htom_factual BETWEEN #21/05/2009# AND #24/05/2009#
GROUP BY loxtyf.cli_codigo, loxtyf.cli_nombre, loxtyf.cli_dni, c.cli_descrip, t.tom_nombre, h.hid_nombre, loxtyf.par_codigo, loxtyf.zon_codigo;

Mi problema está en el FROM y los INNER JOIN, me da el siguiente error: \"Error de sintaxis (falta operador) en la expresión de consulta \'loxtyf.cli_id = c.cli_id
INNER JOIN toma AS t ON loxtyf.tom_id = t.tom_id
INNER JOIN hidrante AS h ON loxtyf.hid_id = h.hid_id\'


Alguien sabe que estoy haciendo mal?

Muchas gracias
  #2 (permalink)  
Antiguo 30/07/2009, 12:52
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Ayuda sql access

Prueba sin los alias.
Descarta que el problema no esta en la fecha.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 04/08/2009, 03:53
 
Fecha de Ingreso: noviembre-2007
Mensajes: 44
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Ayuda sql access

He probado quitando los alias pero nada, sigue dándome el mismo error.

Intenté cambiar un poco la consulta pero me sigue dando exactamente el mismo error, la consulta ahora está así:

SELECT c.cli_nombre, c.cli_codigo, c.cli_dni, c.cli_descrip, cc.tom_nombre, h.hid_nombre, p.par_nombre, p.par_superf, z.zon_nombre, ht.htom_codigo,
cc.htom_vactual, cc.htom_vAnterior, cc.diferencia
FROM toma AS t INNER JOIN
cliente AS c ON t.cli_id = c.cli_id INNER JOIN
h_toma AS ht INNER JOIN
calculo_consumos_export_listado AS cc ON ht.htom_id = cc.htom_id ON t.tom_id = cc.tom_id INNER JOIN
hidrante AS h ON cc.hid_id = h.hid_id INNER JOIN
zona AS z ON cc.zon_id = z.zon_id INNER JOIN
parcela AS p ON t.par_id = p.par_id
WHERE (cc.htom_factual >= '20090401') AND (cc.htom_factual < '20090402')



Alguna idea para que me funcione?



Muchas gracias

Última edición por oscuros; 04/08/2009 a las 04:30
  #4 (permalink)  
Antiguo 04/08/2009, 08:19
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Ayuda sql access

Prueba asi:
Código sql:
Ver original
  1. SELECT c.cli_nombre, c.cli_codigo, c.cli_dni, c.cli_descrip, cc.tom_nombre, h.hid_nombre,
  2. p.par_nombre, p.par_superf, z.zon_nombre, ht.htom_codigo, cc.htom_vactual, cc.htom_vAnterior, cc.diferencia
  3. FROM toma AS t
  4. INNER JOIN cliente AS c ON t.cli_id = c.cli_id
  5. INNER JOIN calculo_consumos_export_listado AS cc ON t.tom_id = cc.tom_id
  6. INNER JOIN h_toma AS ht ON cc.htom_id = ht.htom_id
  7. INNER JOIN hidrante AS h ON cc.hid_id = h.hid_id
  8. INNER JOIN zona AS z ON cc.zon_id = z.zon_id
  9. INNER JOIN parcela AS p ON t.par_id = p.par_id
  10. WHERE cc.htom_factual >= '20090401' AND cc.htom_factual < '20090402'
Si persiste el mismo error, yo empezaria por lo mas simple: hacer un select a la tabla toma, luego hago join con cliente, y asi cada tabla.
Lo estas corriendo en SQL Server o Access?
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #5 (permalink)  
Antiguo 05/08/2009, 00:42
 
Fecha de Ingreso: noviembre-2007
Mensajes: 44
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Ayuda sql access

Es en access, en SQL Server no me da error pero tengo que hacerlo en access.

Me sigue saliendo exactamente el mismo error. Pero muchas gracias igualmente.

Última edición por oscuros; 05/08/2009 a las 01:14
  #6 (permalink)  
Antiguo 06/08/2009, 01:44
 
Fecha de Ingreso: noviembre-2007
Mensajes: 44
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Ayuda sql access

La consulta ya la he resuelto, pero me da un problema bastante gordo, cuando la intento ejecutar me sale el error de "Error no esperado, el programa debe cerrarse".

La consulta al final queda así:
Cita:
SELECT c.cli_nombre, c.cli_codigo, c.cli_dni, c.cli_descrip, cc.tom_nombre, h.hid_nombre, p.par_nombre, p.par_superf, z.zon_nombre, ht.htom_codigo,
SUM(cc.diferencia) AS VOLUMEN_CONSUMIT
FROM toma AS t INNER JOIN
cliente AS c ON t.cli_id = c.cli_id INNER JOIN
calculo_consumos_export_listado AS cc ON t.tom_id = cc.tom_id INNER JOIN h_toma AS ht ON cc.htom_id = ht.htom_id INNER JOIN
hidrante AS h ON cc.hid_id = h.hid_id INNER JOIN
zona AS z ON cc.zon_id = z.zon_id INNER JOIN
parcela AS p ON t.par_id = p.par_id
WHERE (cc.htom_factual >= #01/08/2009#) AND (cc.htom_factual < #07/08/2009#) AND (c.cli_codigo <> '000')
GROUP BY c.cli_nombre, c.cli_codigo, c.cli_dni, c.cli_descrip, cc.tom_nombre, h.hid_nombre, p.par_nombre, p.par_superf, z.zon_nombre, ht.htom_codigo
ORDER BY c.cli_nombre
No se si es que access no es tan potente como sql server y peta por eso o no se, y ya no se que hacer, alguna idea?
Muchas gracias.
  #7 (permalink)  
Antiguo 07/08/2009, 11:03
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Ayuda sql access

Oscuros,
yo no entiendo bien qué quieres conseguir con esa consulta, sobre todo ese group by por tantos elementos. Dinos exactamente lo que buscas. No creo que sea un problema de access.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:23.