Apúntate a la Zona De Descargas Reservadas (ZDDR). Solo son 20 Euros
Con solo 20€ ayudarás
a mantener el foro.


Seguir a udias en Twitter
Directorio de Empresas de Foros de informática


Todo lo que sueñas, se puede diseñar.
We build your dreams.

 - Principal - Responder - Estadísticas - Registrarse - Buscar - Lista de usuarios -  - Zona de Descargas
 -Privacidad y política de cookies -
Ayuda al foro con tu donación
Foros en Udias.com / FileMaker / Execute SQL - Relacionar tablas
Autor Mensaje

Miembro

Habitual

  Karma       72

#1 Publicado: 23 Ago 2017 17:47



Buenas,

Sigo atascado con este tema, que creo que es sencillo pero no doy con el fallo.

Me gustaría saber si cometo errores al relacionar tablas en una secuencia SQL o si tengo algun otro error en la secuencia:

ExecuteSQL("SELECT MAX(\"Puntuación\") FROM \"EJERCICIOS COMPLETADOS\", \"EJERCICIOS EJECUTADOS\" WHERE \"EJERCICIOS COMPLETADOS.IDEjerEjecutado\"=\"EJERCICIOS EJECUTADOS.ID\" AND Fecha_Ejecución_SQL >= ? AND Fecha_Ejecución_SQL <=?";"";"";FechaIniSQL;FechaFinSQL)

Muchas gracias

Sls


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Filemaker 16, Windows 10

Miembro

Habitual

  Karma       72

#2 Publicado: 23 Ago 2017 17:50



Adjunto la foto de las dos tablas:




Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Filemaker 16, Windows 10

Moderador


  Karma               3175

#3 Publicado: 23 Ago 2017 18:12



Hola.
¿en qué tabla quieres poner esa fórmula?
Ya te adelanto que está mal, pero quiero saberlo para facilitártela.
Sls.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Hay 10 tipos de personas, las que saben binario y las que no. Windows 10, FileMaker Pro 17 Advanced

Miembro

Habitual

  Karma       72

#4 Publicado: 23 Ago 2017 18:18



En la tabla Ejercicios Completados

Sls


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Filemaker 16, Windows 10

Moderador


  Karma               3175

#5 Publicado: 23 Ago 2017 21:39 - Editado por: flusheddata



Hola.
La relación SQL se hace con la sentencia JOIN y la cláusula ON no con WHERE.
EC y EE son alias de la tabla. EC.IdEjerEjecutado se lee mejor que \"EJERCICIOS COMPLETADOS\".IdEjerEjecutado

ExecuteSQL("SELECT MAX(\"Puntuación\") FROM \"EJERCICIOS COMPLETADOS\" EC, \"EJERCICIOS EJECUTADOS\" EE ON EC.IdEjerEjecutado = EE.ID WHERE Fecha_Ejecución_SQL >= ? AND Fecha_Ejecución_SQL <=?";"";"";FechaIniSQL;FechaFinSQL)

De todos modos no sé si te funcionará porque si estás usando una función de agregación como MAX deberías añadir la cláusula SORT BY EC.\"Puntuación\"

Si no te funciona sube el archivo y lo miro.

Sls.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Hay 10 tipos de personas, las que saben binario y las que no. Windows 10, FileMaker Pro 17 Advanced

Moderador


  Karma               3175

#6 Publicado: 23 Ago 2017 22:26 - Editado por: flusheddata



Edito (lo anterior estaba mal):

ExecuteSQL("SELECT MAX(EC.\"Puntuación\") FROM \"EJERCICIOS COMPLETADOS\" EC JOIN \"EJERCICIOS EJECUTADOS\" EE ON EC.IdEjerEjecutado = EE.ID WHERE EE.\"Fecha_Ejecución_SQL\" >= ? AND EE.\"Fecha_Ejecución_SQL\" <=?";"";"";FechaIniSQL;FechaFinSQL)

Sls.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Hay 10 tipos de personas, las que saben binario y las que no. Windows 10, FileMaker Pro 17 Advanced

Miembro

Asiduo

  Karma           232

#7 Publicado: 24 Ago 2017 08:03



Creo que hay un error de concepto, falta una tabla que guarde la relación muchos a muchos, ya que un ejercicio lo pueden hacer muchas personas y una persona puede hacer muchos ejercicios. Necesitas una tabla que relacione cada id de ejercicio con un id de usuario.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
MacOS X, Windows 10, FM 17 Advanced, PHP, Mysql

Moderador


  Karma               3175

#8 Publicado: 24 Ago 2017 21:18



JMOE:
Creo que hay un error de concepto, falta una tabla que guarde la relación muchos a muchos

En efecto, así es. Pero pretendo resolver la consulta SQL. Lo otro le llegará a su debido momento.
Ahí tienes mi puntito verde.
Sls.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Hay 10 tipos de personas, las que saben binario y las que no. Windows 10, FileMaker Pro 17 Advanced

Miembro

Habitual

  Karma       72

#9 Publicado: 25 Ago 2017 11:59



Buenas

Ya lo he conseguido, os dejo la solución:

GetAsNumber(ExecuteSQL("SELECT max(A.\"Puntuación\")
FROM Ejercicios_Completados A
JOIN Ejercicios_Ejecutados B ON A.IDEjerEjecutado=B.ID
JOIN Ejercicios C ON B.IDEjercicio=C.ID
WHERE B.\"Fecha_Ejecución_SQL\" >=? AND B.\"Fecha_Ejecución_SQL\" <=?
AND C.Nombre=?

";"";"";FechaIniSQL;FechaFinSQL;EjercicioSQL))

Como dice JMOE, después de conseguir que me funcionara la secuencia SQL para un intervalo de fechas e incluido para un ejercicio determinado. Pretendía ir paso a paso.

Muchas gracias

Un saludo


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Filemaker 16, Windows 10

Moderador


  Karma               2544

#10 Publicado: 25 Ago 2017 12:09



wooww. Qué bien expuesto jongar, ahí va mi puntito verde "pal saco"


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Si te fue de utilidad el foro, valoralo y hazte forero VIP, tu nombre de usuario será verde mostrando que aportas ayuda.
Hacerte VIP es necesario para mantenerlo abierto, recuerda que el foro vive sin ayuda de FileMaker y sus distribuidores oficiales.
W10 Pro x64 - FM Advanced v17 (x64)

Moderador


  Karma               3175

#11 Publicado: 25 Ago 2017 13:27



Impresionante!!!
Enhorabuena.
Otro puntito por la explicación.
Sls.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Hay 10 tipos de personas, las que saben binario y las que no. Windows 10, FileMaker Pro 17 Advanced
Su respuesta

Estilo Negrillas  Estilo Italico  Estilo Subrayado  URL De La Imagen  URL De La Web  Preformatted Text  YouTube URL  Sin código BB
Emoticones
:) ;) :up: :down: :biglol: :confused :cool: :mad: :sad: :shame: :smirk: :tongue: ... Más  Emoticones desactivados
Color de texto
Texto en negro Texto en blanco Texto en gris Texto en rojo Texto en azul Texto en verde Texto en rojo oscuro Texto en cian Texto en azul oscuro Texto en púrpura Texto en amarillo Texto en rosa Texto en naranja Texto en verde oliva Texto en marrón



 » Usuario  » Contraseña 
Solo Usuarios Registrados Pueden Postiar Aqui.
 

Tópicos relacionados con Execute SQL - Relacionar tablas

Relacionar tablas
Relacionar tablas
Como relacionar dos tablas
No logro relacionar tablas
Relacionar multiples tablas a una sola


Conectados: Invitados - 12
Miembros - 2 border=0 jmmiro, Enric7
En verde usuarios ZDDR

Realizado con miniBB © 2001-2018
Para Udias.com © 1996-2018
Hosting con Interdominios