[Lazarus-es] consulta sobre SQL para combinar tablas

Héctor F. Fiandor Rosario hfiandor en infomed.sld.cu
Dom Feb 2 11:42:51 CET 2014


Estimados Ulises y Bidegain:

pienso que el problema esta dado en mi declaración de los INNER JOIN, ya que como veran, si quito el NomNegocio y dejo solo tres tablas, entonces si funciona correctamente. Esto me lleva a pensar que no es un problema del Report ni de Actividades.NomAct, porque con tres tablas lo reproduce perfectamente.

les adjunto como dejo los SQLtext

  sqltext1 := ' SELECT NegSerAct.FecIniNegSerAct, NegSerAct.SemIniNegSerAct, NegSerAct.DuracionPlan, NegSerAct.DuracionReal, ';
  sqltext2 := ' Servicios.NomSer, ';
  sqltext3 := ' Actividades.NomAct ';
  //sqltext4 := ' Negocios.NomNegocio ';
  //sqltext5 := ' FROM ((NegSerAct INNER JOIN Servicios ON NegSerAct.IDServicios = Servicios.IDServicios) INNER JOIN (NegSerAct INNER JOIN Actividades ON NegSerAct.IDSerAct = Actividades.IDActividades)) INNER JOIN Negocios ON NegSerAct.IDNegocio = Negocios.IDNegocio  ';
  sqltext5 := ' FROM (NegSerAct INNER JOIN Servicios ON NegSerAct.IDServicios = Servicios.IDServicios) INNER JOIN  Actividades ON NegSerAct.IDSerAct = Actividades.IDActividades  ';
  sqltext6 := ' WHERE NegSerAct.SemIniNegSerAct = ' + selAnoSem +
              ' ORDER BY NegSerAct.IdNegocio ';

  SQLText := sqltext1 + sqltext2 + sqltext3 +  sqltext4 + sqltext5 + sqltext6;

  fcPorSemana.tcPorSemana.SQL := SQLText;

comente el sqltext4 y desvincule la tabla en el sqltext5. Quité comas y parentesis que sobraban. El resto quedo igual y entonces si trabaja. En la tabla NegSerAct están todos los ID de las otras tablas vinculadas para los "emparejamientos".

O no se como hacer el INNER JOIN para cuatro tablas (si para tres) o el programa no admite mas de tres tablas (cosa que dudo para ser fiel a FPC).

en mi primera preguna no puse bien el mensaje de error.

al tanto de sus noticias,

Ing. Héctor F. Fiandor Rosario
hfiandor en infomed.sld.cu



--

Este mensaje le ha llegado mediante el servicio de correo electronico que ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema Nacional de Salud. La persona que envia este correo asume el compromiso de usar el servicio a tales fines y cumplir con las regulaciones establecidas

Infomed: http://www.sld.cu/



------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20140201/6c9f7a8c/attachment-0002.html>


More information about the Lazarus-es mailing list