Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-12-2003
Avatar de PepeLolo
PepeLolo PepeLolo is offline
Miembro
 
Registrado: jun 2003
Ubicación: Fuenlabrada - Madrid - Espagna
Posts: 265
Poder: 21
PepeLolo Va por buen camino
Angry Nº de campos en consulta SQL en exceso

El gestor de BD utilizado es Oracle8i y sin más narices que con BDE 5.01.
Las DLL usadas con el BDE son las recomendadas para Oracle8i.
La versión de delphi 5, con el correspondiente parche.

La SQL es usada para generar posteriormente un fichero DbaseIII para fusionarlo con un documento WORD.
El proceso tiene que ser así, ya que este se lanza desde la web, programas desarrollados en Oracle Forms6i, que ejecutan un CGI de delphi que genera el ficherito dBaseIII y realiza la fusión con Word.

El problema es que al lanzar la siguiente SQL, el BDE me da un error de "Demasiados campos" y se las pira.

Pido ayudita, me duele mucho la cabecita y no consigo dar con una puñetera idea buena para que se ejecute la Query.

Todos los campos que aparecen en la SQL son fusionados con el documento Word, por lo que me es imposible eliminar alguno.

Aquí va la SQL:

SELECT GLS.DSOBSERVA_SEGUIMIENTO SEGUI,GLS.NMSOLICITUD SOLICITUD,
TO_CHAR(GLS.FCSOLICITUD,'DD/MM/RRRR') F_SOLICI,
GLS.EXPEDIENTE,
TO_CHAR(GLS.FCINICIO,'DD/MM/RRRR') F_INICIO,
TO_CHAR(GLS.FCFIN_REAL,'DD/MM/RRRR') F_FIN,
ADD_MONTHS(GLS.FCFIN_REAL,2) F_FIN_MAS2,
GLS.DSTITULO TITULO,
GLS.NMDURACION DURACION,
TO_CHAR(GLS.DNPRESUPUESTO_SOLICITADO,'999G999G990D00') PRESU_SOL,
TO_CHAR(GLS.DNPRESUPUESTO,'999G999G990D00') PRESUP,
TO_CHAR(GLS.DNAPORTA_EMPRESA ,'999G999G990D00') APORTA_EMP,
GLS.DNCAPITAL,
GLS.NMTRABAJADORES TRAB_EMP,
GLS.NMPORCEN_TRABA_INDE PORC_TRABA,
GLS.NMPORCEN_PERSONAL_ID PORC_PERS,
GLS.NMPORCEN_GASTOS_ID PORC_GAST,
TO_CHAR(DECODE(GLS.DNPRESUPUESTO,NULL,0,(GLS.DNPRESUPUESTO_SOLICITADO/GLS.DNPRESUPUESTO)*100),'999G999G990D00') POR_PRE_TO,
'Orden nº: ' || GL.RESOL_BOCM || ' de ' ||
TO_CHAR(GL.FCBOCM,'DD') || ' de ' ||
RTRIM(LOWER(TO_CHAR(GL.FCBOCM,'MONTH'))) || ' de ' ||
TO_CHAR(GL.FCBOCM,'YYYY') RESOLUCION,
GL.RESOL_BOCM N_ORDEN,
TO_CHAR(GL.FCBOCM,'DD') || ' de ' ||
RTRIM(LOWER(TO_CHAR(GL.FCBOCM,'MONTH'))) || ' de ' ||
TO_CHAR(GL.FCBOCM,'YYYY') FECHA_RESO,
GL.NMBOLETIN N_BOLETIN,
TO_CHAR(GL.FCBOLETIN,'DD') || ' de ' ||
RTRIM(LOWER(TO_CHAR(GL.FCBOLETIN,'MONTH'))) || ' de ' ||
TO_CHAR(GL.FCBOLETIN,'YYYY') F_BOLETIN,
GLS.RESOLUCION RESO2,
TO_CHAR(GLS.FCRESOLUCION,'DD') || ' de ' ||
RTRIM(LOWER(TO_CHAR(GLS.FCRESOLUCION,'MONTH'))) || ' de ' ||
TO_CHAR(GLS.FCRESOLUCION,'YYYY') F_RESO2,
GEL.DSESTADO,
GI.RAZON_SOCIAL RAZON_SOC,
GL.DSLINEA,
GL.PROG_PRESUPUESTO PROG_PRESU,
GL.NMMESES,
GL.NMBOLETIN,
GL.FCBOLETIN,
GL.ANO,
GL.DNPARTIDA_PRESU PART_PRESU,
GD.DIRECCION || ',' || GD.NMNUMERO || ' ' || GD.PISO || '-' || GD.LETRA DIR_EMPRES,
GD.CDPOSTAL COD_POS,
GD.TELEFONO1,
GD.TELEFONO2,
GD.FAX,
GD.E_MAIL,
GI.DOCUMENTO CIF_EMP,
SP.DSPROV PROVINCIA,
SM.DSMUNI MUNICIPIO,
GG.ATRIBUTO ATR_EMP,
GC.DSCALIFICACION CALIF,
GCN.DSCNAE CNAE,
REP.NOMBRE_REP REPRES,
REP.APELLIDO1_REP APE1_REP,
REP.DIRECCION_REP DIR_REP,
REP.CDPOSTAL_REP CDPOS_REP,
REP.TELEF1_REP TEL1_REP,
REP.TELEF2_REP TEL2_REP,
REP.FAX_REP FAX_REP,
REP.E_MAIL_REP MAIL_REP,
REP.CARGO_REP CARGO_REP,
REP.ATR_REP,
REP.NIF_REP,
CONT.NOMBRE_CONT CONTACTO,
CONT.APELLIDO1_CONT APE1_CONT,
CONT.DIRECCION_CONT DIR_CONT,
CONT.CDPOSTAL_CONT CDPOS_CONT,
CONT.TELEF1_CONT TEL1_CONT,
CONT.TELEF2_CONT TEL2_CONT,
CONT.FAX_CONT FAX_CONT,
CONT.E_MAIL_CONT MAIL_CONT,
CONT.CARGO_CONT CARG_CONT,
CONT.ATR_CONT,
CONT.NIF_CONT,
TO_CHAR(GT.FCINTERVENCION,'DD') || ' de ' || LOWER(TO_CHAR(GT.FCINTERVENCION,'MONTH')) || ' de ' || TO_CHAR(GT.FCINTERVENCION,'YYYY') F_INTERV,
GT.DSINTERVENTOR2 INTERV,
TO_CHAR(SYSDATE,'DD') || ' de ' || LOWER(TO_CHAR(SYSDATE,'MONTH')) || ' de ' || TO_CHAR(SYSDATE,'YYYY') F_SISTEMA,
TO_CHAR(GASTOS.TOT_GASTO_CM,'999G999G990D00') T_GASTO_CM,
GASTOS.TOT_GASTO_CM_OK T_GASTO_OK,
GASTOS.TOT_GASTO_EMPRESA T_GAST_EMP,
GASTOS.TOT_SOLICITADO T_SOLICI,
GASTOS.TOT_COOFINANCIADO T_COOFIN,
GASTOS.TOT_JUSTIFICADO T_JUSTIF,
GASTOS.TOT_CERTIFICADO T_CERTIF,
GASTOS.TOT_TOTAL T_TOTAL,
GCF.C_CAMPO1 NOMBRE_OI,
GCF.C_CAMPO2 CONT_OI,
GCF.C_CAMPO3 TELEF_OI,
GCF.C_CAMPO4 FAX_OI,
GCF.C_CAMPO5 FECHA_OP,
GCF.C_CAMPO6 ORG_OP,
GCF.C_CAMPO7 PROG_OP,
GCF.C_CAMPO8 CUANT_OP,
GCF.C_CAMPO9 C_GASTOS,
GCF.C_CAMPO10 DNEMP1,
GCF.C_CAMPO11 DNCM1,
GCF.C_CAMPO12 PRE_TOT1,
GCF.C_CAMPO13 C_GASTOS2,
GCF.C_CAMPO14 DNEMP2,
GCF.C_CAMPO15 DNCM2,
GCF.C_CAMPO16 PRE_TOT2,
GCF.C_CAMPO17 PRE_TOT,
GCF.C_CAMPO18 DNCMOK1,
GCF.C_CAMPO19 DNCMOK2,
GCF.C_CAMPO20 T_DNCMOK,
GCF.C_CAMPO21 NMCAMBIO,
GCF.C_CAMPO22 FCPETICIO,
GCF.C_CAMPO23 DSPETICI,
GCF.C_CAMPO24 CONCEDID,
GCF.C_CAMPO25 FCRESOLU,
GCF.C_CAMPO26 DNCERTI1,
GCF.C_CAMPO27 DNJUSTI1,
GCF.C_CAMPO28 DNADMI1,
GCF.C_CAMPO29 DNCERTI2,
GCF.C_CAMPO30 DNJUSTI2,
GCF.C_CAMPO31 DNADMI2,
GCF.C_CAMPO32 FCENT24,
GCF.C_CAMPO33 RESU24,
GCF.C_CAMPO34 OBS24,
GCF.C_CAMPO35 DSCOM24,
GCF.C_CAMPO36 FCENT20,
GCF.C_CAMPO37 RESU20,
GCF.C_CAMPO38 OBS20,
GCF.C_CAMPO39 DSCOM20,
GCF.C_CAMPO40 FCENT26,
GCF.C_CAMPO41 RESU26,
GCF.C_CAMPO42 OBS26,
GCF.C_CAMPO43 DSCOM26,
GCF.C_CAMPO44 FCENT23,
GCF.C_CAMPO45 RESU23,
GCF.C_CAMPO46 OBS23,
GCF.C_CAMPO47 DSCOM23,
GCF.C_CAMPO48 P_TOT1,
GCF.C_CAMPO49 P_TOT2,
GCF.C_CAMPO50 P_TOT,
GCF.C_CAMPO51 T_DNEMP1,
GCF.C_CAMPO52 T_DNEMP2,
GCF.C_CAMPO53 T_DNCM1,
GCF.C_CAMPO54 T_DNCM2,
GCF.C_CAMPO55 t_OK1,
GCF.C_CAMPO56 t_OK2,
GCF.C_CAMPO57 t_OK,
GCF.C_CAMPO58 t_CER1,
GCF.C_CAMPO59 t_JUS1,
GCF.C_CAMPO60 t_ADM1,
GCF.C_CAMPO61 t_CER2,
GCF.C_CAMPO62 t_JUS2,
GCF.C_CAMPO63 t_ADM2

FROM GAIN_LINEAS_SOLICITUD GLS,
GAIN_LINEAS GL,
GAIN_ESTADO_LINEAS GEL,
GAIN_SOLICITUD_INTERESADO GSI,
GAIN_INTERESADOS GI,
GAIN_DIRECCIONES GD,
SUCA_PROVINCIA SP,
SUCA_MUNICIPIO SM,
GAIN_CALIFICACIONES GC,
GAIN_CNAE GCN,
GAIN_GENERO GG,
GAIN_CAMPOS_FUSION GCF,
GAIN_TRAMITACION GT,
(SELECT GI2.NOMBRE || ' ' || GI2.APEL1 || ' ' || GI2.APEL2 NOMBRE_REP,
GSI2.NMSOLICITUD,
GI2.APEL1 APELLIDO1_REP,
GD2.DIRECCION || ',' || GD2.NMNUMERO || ' ' || GD2.PISO || '-' || GD2.LETRA DIRECCION_REP,
GD2.CDPOSTAL CDPOSTAL_REP,
GD2.TELEFONO1 TELEF1_REP,
GD2.TELEFONO2 TELEF2_REP,
GD2.FAX FAX_REP,
GD2.E_MAIL E_MAIL_REP,
GC2.DSCARGO CARGO_REP,
GG2.ATRIBUTO ATR_REP,
GI2.DOCUMENTO NIF_REP
FROM GAIN_SOLICITUD_INTERESADO GSI2,
GAIN_INTERESADOS GI2,
GAIN_GENERO GG2,
GAIN_DIRECCIONES GD2,
GAIN_CARGO GC2
WHERE GSI2.NMSOLICITUD='55561'
AND GSI2.NMINTERESADO=GI2.NMINTERESADO
AND GI2.CDGENERO=GG2.CDGENERO(+)
AND GI2.IDDIRECCION=GD2.IDDIRECCION(+)
AND GSI2.CDCARGO=GC2.CDCARGO(+)
AND GSI2.CDTPINTERESADO='03') REP,

(SELECT GI2.NOMBRE || ' ' || GI2.APEL1 || ' ' || GI2.APEL2 NOMBRE_CONT,
GSI2.NMSOLICITUD,
GI2.APEL1 APELLIDO1_CONT,
GD2.DIRECCION || ',' || GD2.NMNUMERO || ' ' || GD2.PISO || '-' || GD2.LETRA DIRECCION_CONT,
GD2.CDPOSTAL CDPOSTAL_CONT,
GD2.TELEFONO1 TELEF1_CONT,
GD2.TELEFONO2 TELEF2_CONT,
GD2.FAX FAX_CONT,
GD2.E_MAIL E_MAIL_CONT,
GC2.DSCARGO CARGO_CONT,
GG2.ATRIBUTO ATR_CONT,
GI2.DOCUMENTO NIF_CONT
FROM GAIN_SOLICITUD_INTERESADO GSI2,
GAIN_INTERESADOS GI2,
GAIN_GENERO GG2,
GAIN_DIRECCIONES GD2,
GAIN_CARGO GC2
WHERE GSI2.NMSOLICITUD='55561'
AND GSI2.NMINTERESADO=GI2.NMINTERESADO
AND GI2.CDGENERO=GG2.CDGENERO(+)
AND GI2.IDDIRECCION=GD2.IDDIRECCION(+)
AND GSI2.CDCARGO=GC2.CDCARGO(+)
AND GSI2.CDTPINTERESADO='04') CONT,
(SELECT NMSOLICITUD,
SUM(DNGASTO_CM) TOT_GASTO_CM,
SUM(DNGASTO_CM_OK) TOT_GASTO_CM_OK,
SUM(DNGASTO_EMPRESA) TOT_GASTO_EMPRESA,
SUM(DNSOLICITADO) TOT_SOLICITADO,
SUM(DNCOOFINANCIADO) TOT_COOFINANCIADO,
SUM(DNJUSTIFICADO) TOT_JUSTIFICADO,
SUM(DNCERTIFICADO) TOT_CERTIFICADO,
SUM(DNGASTO_TOTAL) TOT_TOTAL
FROM GAIN_SOLICITUD_GASTO
WHERE NMSOLICITUD='55561'
GROUP BY NMSOLICITUD) GASTOS

WHERE GLS.NMLINEAS=GL.NMLINEAS
AND GLS.CDESTADO=GEL.CDESTADO(+)
AND GLS.NMMIEMBRO=GSI.NMMIEMBRO
AND GSI.NMINTERESADO=GI.NMINTERESADO
AND GI.CDGENERO=GG.CDGENERO(+)
AND GLS.NMSOLICITUD='55561'
AND GI.IDOTRADIRECCION=GD.IDDIRECCION
AND GD.CDPROV=SP.CDPROV(+)
AND GD.CDPROV=SM.CDPROV(+)
AND GD.CDMUNI=SM.CDMUNI(+)
AND GLS.CDCALIFICACION=GC.CDCALIFICACION(+)
AND GLS.CDCNAE=GCN.CDCNAE(+)
AND GLS.NMSOLICITUD=REP.NMSOLICITUD(+)
AND GLS.NMSOLICITUD=CONT.NMSOLICITUD(+)
AND GLS.NMSOLICITUD=GT.NMSOLICITUD(+)
AND GLS.NMSOLICITUD=GASTOS.NMSOLICITUD(+)
AND GCF.C_IDFUSION=422

Gracias a todos por vuestro interes
__________________
PepeLolo
El hombre el único virus que mide más de unas cuantas micras
Responder Con Cita
  #2  
Antiguo 15-12-2003
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Hola.

¿ Puedes definir una Vista en la base de datos ?

De esta forma el BDE vería una consulta mucho más sencilla, algo parecido a :

select * from mi_vista
where NMSOLICITUD='55561' AND C_IDFUSION=422

Aunque el resultado final són los mismos campos, el BDE no ve los campos que se concatenan para resultar en un solo campo, ni los camos en que se definen las uniones, etc. ... Con un poco de suerte (o mucha), igual te lo deja ejecutar.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 15:40:02.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi