PostgreSQL - Error en Query

 
Vista:

Error en Query

Publicado por Roberto (2 intervenciones) el 29/10/2014 23:50:02
Disculpen todos, alguien me podria ayudar un poco con este query, me trae loco ya le busque de arriba a abajo y no le veo algun error.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
SELECT pr.referenciaprestamo, s.clavesocioint,
          SUBSTRING((CASE WHEN s.tiposocioid='03' THEN
               TRIM(su.razonsocial)
            ELSE
               TRIM(su.nombre)||' '||TRIM(su.paterno)||' '||TRIM(su.materno)
          END),1,25) AS nombresocio,
          pr.tipoprestamoid, pr.montoprestamo, pr.tasanormal, pr.tasa_moratoria, sumaactivoprestamo(pr.referenciaprestamo), pr.fecha_otorga, pr.fecha_vencimiento, pr.usuarioid, fi.descripcionfinalidad, tp.desctipoprestamo, montoprestamoentregado(pr.referenciaprestamo),
          d.calle||' #'||TRIM(d.numero_ext||' '||d.numero_int)||', '||col.nombrecolonia AS domicilio,
          cm.nombreciudadmex AS ciudad, em.nombreestadomex AS estado,
          d.teldomicilio AS telefono, d.comunidad, TRIM(su2.nombre)||' '||TRIM(su2.paterno)||' '||TRIM(su2.materno) AS promotor,
          cc.giroempresa_trabajo, si.profesion, si.ocupacion
                  FROM ((sucursal1.prestamos pr INNER JOIN sucursal1.tipoprestamo tp ON pr.tipoprestamoid=tp.tipoprestamoid)
                              INNER JOIN sucursal1.finalidades fi ON pr.clavefinalidad=fi.clavefinalidad)
                              INNER JOIN (socio s LEFT JOIN (promotor pt LEFT JOIN sujeto su2 ON pt.sujetoid=su2.sujetoid)
							  ON s.promotorid='')
                                                   LEFT JOIN (((sujeto su LEFT JOIN conoceatucliente cc ON su.sujetoid=cc.sujetoid)
                                                                          INNER JOIN solicitudingreso si ON su.sujetoid=si.sujetoid)
                                                                          INNER JOIN ((domicilio d INNER JOIN colonia col ON d.coloniaid=col.coloniaid)
                                                                                                   INNER JOIN (ciudadesmex cm INNER JOIN estadosmex em ON cm.estadomexid=em.estadomexid)
                                                                                                                              ON d.ciudadmexid=cm.ciudadmexid)
                                                                                                  ON su.sujetoid=d.sujetoid)
                                                   ON pr.socioid=s.socioid
          WHERE pr.claveestadocredito <> '008' AND pr.fecha_otorga >= '2014-03-01' AND pr.fecha_otorga <= '2014-03-31' AND
                s.socioid IN (SELECT socioid FROM solicitudingreso WHERE grupo>='<NINGUNO>' AND grupo <= '<NINGUNO>') ('114')
          ORDER BY pr.fecha_otorga, su.nombre, su.paterno, su.materno;

He estado haciendo pruebas encontrando el error y segun yo el error aparece al comensar esta linea:
1
2
INNER JOIN (socio s LEFT JOIN (promotor pt LEFT JOIN sujeto su2 ON pt.sujetoid=su2.sujetoid)
							  ON s.promotorid='')

Alguna ayuda les agradeseria..

Este es el error que me da..

1
2
3
4
5
6
7
8
ERROR:  error de sintaxis en o cerca de «WHERE»
LINE 23:           WHERE pr.claveestadocredito <> '008' AND pr.fecha_...
                   ^
********** Error **********
 
ERROR: error de sintaxis en o cerca de «WHERE»
SQL state: 42601
Character: 2311
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
Imágen de perfil de xve
Val: 39
Ha disminuido 1 puesto en PostgreSQL (en relación al último mes)
Gráfica de PostgreSQL

Error en Query

Publicado por xve (55 intervenciones) el 30/10/2014 08:10:25
Hola Roberto, creo que los errores los tienes en los INNER JOIN que hay por encima del WHERE que te da el error...

El formato de INNER JOIN es.
1
2
tabla1 INNER JOIN tabla2 ON tabla1.campo=tabla2.campo
INNER JOIN tabla3 ON tabla1.campo=tabla3.campo

Tu no lo tienes así... tu tienes algo como:
1
2
3
4
[b]tabla1 INNER JOIN tabla2
INNER JOIN tabla3
ON tabla1.campo=tabla2.campo
ON tabla1.campo=tabla3.campo

Si lo pones bien, creo que solucionaras el problema... si nos puedes comentar...
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

Error en Query

Publicado por Roberto (2 intervenciones) el 30/10/2014 19:14:53
Antes que nada gracias por contestar, si me ha servido la informacion, pero quisiera saber despues de hacer el Inner Join juntando esas 3 tablas como agrago un Left Join junto a esas tres tablas para una Cuarta tabla ya que me marca error de sintaxis y creo que ya me nuble la mente....
SELECT *
FROM (sucursal1.prestamos pr INNER JOIN sucursal1.tipoprestamo tp ON tp.tipoprestamoid=tp.tipoprestamoid
INNER JOIN sucursal1.finalidades fi ON pr.clavefinalidad=fi.clavefinalidad)
sucursal1.promotor pt LEFT JOIN sucursal1.sujeto su2 ON pt.sujetoid=su2.sujetoid

Mas o menos es asi como lo tengo y me marca error, si me ayudas te lo agradeceria.
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

Error en Query

Publicado por martin (121 intervenciones) el 31/10/2014 03:01:43
que error te da? tambien veo raro el sucursal1.prestamos pr INNER JOIN sucursal1.tipoprestamo tp ON tp.tipoprestamoid=tp.tipoprestamoid por que tp.tipoprestamoid=tp.tipoprestamoid siempre es verdadero
tambien sucursal1.promotor pt LEFT JOIN sucursal1.sujeto su2 ON pt.sujetoid=su2.sujetoid
hay algo raro por que nunca haces join con alguna de las tablas anteriores,esta como colgado.
podes hacer eso, pero despues tiene que estar joineado con otra de las entidades anteriores.

un consejo:
Si te marean los joins anda agregando uno por uno hasta que el error aparesca.primero haces un join y probas,despues el siguiente y asi.
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