Access - Error en consulta sql

 
Vista:

Error en consulta sql

Publicado por Eduard  (2 intervenciones) el 04/08/2009 12:37:00
Buenas, tengo la siguiente consulta sql:

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')

Esta consulta me funciona en SQL Server, pero en access me da el error:
Error de sintaxis (falta operador) en la expresión de consulta '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.'.


Alguna idea de porque me falla? He probado a hacerlo sin INNER JOINS y utilitzar concatenaciones, pero me sale el error: "Consulta demasiado compleja".


Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Error en consulta sql

Publicado por Antonio (83 intervenciones) el 06/08/2009 02:07:36
Hola,

El error está en las clausulas AS, que puedes usar para dar un nombre distinto a cualquiera de los campos seleccionados pero no para dar nombre a todo el registro:

SELECT c.cli_nombre, c.cli_codigo, ... FROM toma AS t es erróneo

Select c.cli_nombre as Nombre_Cliente, c.cli_codigo, ... from toma inner join ...

y también parecen estar equivocados los nombres si la tabla se llama TOMA

Select C.CLI_NOMBRE from TOMA debería ser
Select TOMA.CLI_NOMBRE from TOMA

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error en consulta sql

Publicado por Edu (2 intervenciones) el 06/08/2009 09:45:22
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í:

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.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error en consulta sql

Publicado por Antonio (83 intervenciones) el 06/08/2009 22:11:48
Hola de nuevo,

He visto que seguías usando la clausula AS en la misma forma y me ha picado la curiosidad por probarlo y veo que funciona (no conocía esa modalidad).

Por lo demás no sé que pueda causar el fallo, ¿muchas join? Quizás si la desdoblas en varias queries separadas y probandolas ordenadamente te dé alguna pista.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error en consulta sql

Publicado por Jess (1 intervención) el 27/01/2010 17:30:12
En Access tienes q usar parentesis para mas de dos JOIN anidarlos asi te podra reconocer el select.
Salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar