Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-11-2008
El_Raso El_Raso is offline
Miembro
 
Registrado: oct 2003
Posts: 135
Poder: 21
El_Raso Va por buen camino
Question Mirar por favor este query y comentar...

Código SQL [-]
SELECT
    A.NUMEROFICHA,
    A.NOMBREJEFE,
    A.APODOJEFE,
    A.CALLE,
    A.NUMEROCASA,
    A.APELLIDOJEFE,
    A.BARRIO,
    A.PROVINCIA,
    A.MUNICIPIO,
    A.SECCION,
    A.PARAJE,
    A.FECHA,
    A.FECHAVISITA,
    A.TENDENCIA,
    A.PAREDES,
    A.TECHO,
    A.PISO,
    A.SERVICIOSSANITARIO,
    A.AGUAINSTALACION,
    A.ABASTECIMIENTOAGUA,
    A.BASURA,
    A.ELECTRICIDAD,
    A.DORMITORIOS,
    A.COMBUSTIBLECOCINA,
    A.ANIMALESDOMESTICOS,
    A.ESPECIFIQUEANIMALES,
    A.VECTORESCRIADEROS,
    A.ESPECIFIQUECRIADEROS,
    A.PUNTUACION,
    A.CUALIFICACION,
    A.CODIGOREGION,
    A.CODIGOAREA,
    A.CODIGOZONA,
    A.CODIGOUNAP,
    A.TELEFONO,
    A.SUBBARRIO,
    B.nombreregion,
    C.nombrearea,
    D.nombrezona,
    I.nombreunap,
    E.nombreprovincia,
    F.nombremunicipio,
    G.nombreseccion,
    H.nombreparaje
FROM
    FICHAFAMILIAR A
LEFT JOIN regionsalud B ON A.codigoregion = B.codigoregion
LEFT JOIN areadesalud C ON A.codigoregion = C.codigoregion AND A.codigoarea = C.codigoarea
LEFT JOIN zonasdesalud D ON A.codigoregion = D.codigoregion AND A.codigoarea = D.codigoarea AND A.codigozona = D.codigozona
LEFT JOIN unap I ON A.codigounap = I.codigounap AND A.codigoarea = I.codigoarea AND A.codigozona = I.codigozona AND A.codigoregion = I.codigoregion

LEFT JOIN provincias E ON A.provincia = E.codigoprovincia
LEFT JOIN municipio F ON A.municipio = F.codigomunicipio AND A.provincia = F.codigoprovincia
LEFT JOIN secciones G ON A.seccion = G.codigoseccion AND A.municipio = G.codigomunicipio AND A.provincia = G.codigoprovincia
LEFT JOIN parajes H ON A.paraje = H.codigoparaje AND A.municipio = H.codigomunicipio AND A.provincia = H.codigoprovincia AND A.seccion = H.codigoseccion
ORDER BY NUMEROFICHA

Cada uno de los campos de las relaciones son campos primarios...
Uso Delphi 2007 con FIBplus 6.8, este query es para darle mantenimiento a la tabla FICHAFAMILIAR.
Responder Con Cita
  #2  
Antiguo 11-11-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
¿Y qué quieres que comentemos?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 11-11-2008
Avatar de xander
xander xander is offline
Miembro
 
Registrado: jul 2006
Posts: 499
Poder: 18
xander Va por buen camino
no, pus muy bonito query... miralo... con su select y toda la cosa..
__________________
"Hey, nena, debe ser genial ser tú y verme a mí mismo..."
Responder Con Cita
  #4  
Antiguo 11-11-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje
¿Y qué quieres que comentemos?
Lo mismo pregunto.

Cita:
Empezado por xander Ver Mensaje
no, pus muy bonito query... miralo... con su select y toda la cosa..
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #5  
Antiguo 11-11-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
A mi lo que me gusta de este query es que hasta el apodo del jefe obtienes

Cita:
Empezado por El_Raso
Código SQL [-]
SELECT
    A.NUMEROFICHA,
    A.NOMBREJEFE,
    A.APODOJEFE,
    A.CALLE,
    A.NUMEROCASA,
    A.APELLIDOJEFE,
    A.BARRIO,
    A.PROVINCIA,
    A.MUNICIPIO,
// Saludos
Responder Con Cita
  #6  
Antiguo 11-11-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Casi entiendo que estan todos los campos, si no es así, son un montón.
No seria mas facil un SELECT * ???
Saludos
__________________
Siempre Novato
Responder Con Cita
  #7  
Antiguo 11-11-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por Caral Ver Mensaje
Hola
Casi entiendo que estan todos los campos, si no es así, son un montón.
No seria mas facil un SELECT * ???
Saludos
A riesgo de equivocarme, creo que no funcionaría. Intervienen muchas tablas, y la verdad es que en estos momentos no recuerdo bien como es que actúa el motor:

O trae todos los campos de todas las tablas, o si informa de un error al no saber sobre que campos y de que tablas extraer los campos.

Si es diferente si se empleara algo como:

Código SQL [-]
A.*



En lo personal prefiero dejar explícito que campos extraer. El empleo del asterisco en tablas con muchos campos puede hacer un poco más "lento" la consulta. Puesto que debe recorrer la/s tabla/s horizontalmente extrayendo los campos correspondiente.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #8  
Antiguo 11-11-2008
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Usar select *, que relentiza al menos un poco las consultas, ya que según tengo entendido el motor tiene que ir a las tablas del sistema para "averiguar" cuales son los campos de dicha tabla, mientras que si le pasas el nombre tu mismo, él ya no tiene que hacer eso y es un paso (que aunque lo hace rapido) se ahorra.

Bueno, al menos eso es lo que yo tengo entendido...
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #9  
Antiguo 11-11-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Bueno, pero el tiempo en que el motor consulta los campos seguramente es menor que el tiempo que yo tardo en escribirlos en la consulta, con lo cual compensa

// Saludos
Responder Con Cita
  #10  
Antiguo 11-11-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por jhonny Ver Mensaje
Usar select *, que relentiza al menos un poco las consultas, ya que según tengo entendido el motor tiene que ir a las tablas del sistema para "averiguar" cuales son los campos de dicha tabla, mientras que si le pasas el nombre tu mismo, él ya no tiene que hacer eso y es un paso (que aunque lo hace rapido) se ahorra.

Bueno, al menos eso es lo que yo tengo entendido...
Efectivamente, primero debe ejecutar una consulta a las tablas del sistema para saber los campos.

Luego, una vez extraído los campos, puede ejecutar la consulta en cuestión.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #11  
Antiguo 11-11-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Sabia que crearía polémica
Lo que dice El_Raso:
Cita:
Uso Delphi 2007 con FIBplus 6.8, este query es para darle mantenimiento a la tabla FICHAFAMILIAR.
Perdón pero que mantenimiento se pretende de un select ?.
Lo que creo es que lo que quiere es visualizar el contenido de ciertos campos de ciertas tablas, pero como no indica los campos que tiene cada tabla puedo pensar que son todos (la lista es grande) y después actualizar la tabla FichaFamiliar.
Por otra parte coincido con vosotros en lo que habéis dicho.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #12  
Antiguo 11-11-2008
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por roman Ver Mensaje
Bueno, pero el tiempo en que el motor consulta los campos seguramente es menor que el tiempo que yo tardo en escribirlos en la consulta, con lo cual compensa
// Saludos
Creeme que me haz hecho sentir identificado , cuando el lado perezoso de mi cerebro piensa esas cosas, el otro dice:

- "A ver Jhonny, sumemos el tiempo que te gastas escribiendo los nombres de los campos y comparemos contra las veces que se ejecutará esa consulta".

- El perezoso no se queda atras y dice, listo pues, pero entonces abramos el IBExpert, ejecutemos select * from tabla y vamos a la pestañita que esta abajo de los resultados que se llama "Query Columns" (Ahí aparecen todos los nombres de las columnas separadas por comas), seleccione todo, copie y pegue .

Caramba!!!, que cantidad de cosas que uno tiene que pensar

P.D: Vieron que si habia bastante para comentar en este hilo?
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #13  
Antiguo 11-11-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Bueno, y volviendo al hilo... ¿que debemos comentar?
Yo no demasiado lio, si admito que llama la atención la cantidad de join que hace. Al menos en teoría son operaciones "lentas" Pero bueno... no vamos a volver a analizar si es lento o no, .... ¿o si?

La cuestión es que con analizar una instrucción SQL no basta como para decir, que está bien o mal. Necesitamos más material con el cual podamas analizar y debatir.
El_Raso, te agradecería que nos comentaras algo más al respecto para que podamos darte sugerencias, críticas, alternativas, etc.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #14  
Antiguo 11-11-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Chicos, sólo hace 5 horas que ha puesto la duda y ¿ya exigen que dé una respuesta? déjenlo respirar ¿no? También tiene vida fuera de los foros.


OFFTOPIC: Tenía que decirlo o reventaba .
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #15  
Antiguo 11-11-2008
hecospina hecospina is offline
Miembro
 
Registrado: oct 2007
Posts: 202
Poder: 17
hecospina Va por buen camino
Pues Lepe tiene toda la razon, no debemos acosarlo con mas preguntas, algun dia......... regresara para mirar nuestras respuestas

Pero analizando hay cositas que le sobran por ejemplo


Código SQL [-]
......
LEFT JOIN areadesalud C ON A.codigoregion = C.codigoregion AND A.codigoarea = C.codigoarea
LEFT JOIN zonasdesalud D ON A.codigoregion = D.codigoregion AND A.codigoarea = D.codigoarea AND A.codigozona = D.codigozona
LEFT JOIN unap I ON A.codigounap = I.codigounap AND A.codigoarea = I.codigoarea AND A.codigozona = I.codigozona AND A.codigoregion = I.codigoregion
......
LEFT JOIN municipio F ON A.municipio = F.codigomunicipio AND A.provincia = F.codigoprovincia
LEFT JOIN secciones G ON A.seccion = G.codigoseccion AND A.municipio = G.codigomunicipio AND A.provincia = G.codigoprovincia
LEFT JOIN parajes H ON A.paraje = H.codigoparaje AND A.municipio = H.codigomunicipio AND A.provincia = H.codigoprovincia AND A.seccion = H.codigoseccion
......





para mi solo quedaria asi


Código SQL [-]
....
LEFT JOIN areadesalud C ON A.codigoregion = C.codigoregion
LEFT JOIN zonasdesalud D ON A.codigoregion = D.codigoregion
LEFT JOIN unap I ON A.codigounap = I.codigounap
......
LEFT JOIN municipio F ON A.municipio = F.codigomunicipio
LEFT JOIN secciones G ON A.seccion = G.codigoseccion
LEFT JOIN parajes H ON A.paraje = H.codigoparaje
....





!Que impaciencia, estamos muy urgidos que él lea nuestras respuestas¡
Responder Con Cita
  #16  
Antiguo 12-11-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Neftali Ver Mensaje
¿Y qué quieres que comentemos?
... wainting for response ...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #17  
Antiguo 12-11-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje
... wainting for response ...
¿Wainting = Waiting?
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #18  
Antiguo 12-11-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por enecumene Ver Mensaje
¿Wainting = Waiting?
Pues sigo ...waiting... a que este señor nos consteste, ¿Qué quiere que comentemos?
Porque yo sigo sin tenerlo claro...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #19  
Antiguo 12-11-2008
El_Raso El_Raso is offline
Miembro
 
Registrado: oct 2003
Posts: 135
Poder: 21
El_Raso Va por buen camino
Gracias a todos por los comentarios.... en realidad lo que ando buscando es la rapidez en la consulta... ahora bien... porque tantas relaciones? porque los datos lo presento en un cxDBgrid de la Quantum que uso (6.38) y necesito mostrar no los codigo (de la provincia, municipio, etc) si no la descripcion.

Como la respuesta de hescopina es que esperaba algunas de ustedes... pero me gustaron muy jocosas...

Y en conclusion lo que quiero es que me comenten de que forma puedo optimizar el query ya que voy a manejar millones de registros en un grid como lo comente mas arriba.

Y gracias a todos por sus comentarios....sigan por favor....
Responder Con Cita
  #20  
Antiguo 12-11-2008
El_Raso El_Raso is offline
Miembro
 
Registrado: oct 2003
Posts: 135
Poder: 21
El_Raso Va por buen camino
Funcionaria igual el query hescopina?, con la forma que propones?
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ayuda por favor para correr un query en Delphi a una base de datos en Mysql charlyfitlh MySQL 10 01-11-2007 20:28:49
Problema con DBGrid y Query...Ayuda por favor! AFilth Varios 2 03-11-2005 16:42:17
Por favor, Ayuda en Query y paradox CarlosHernandez Conexión con bases de datos 1 25-07-2005 16:20:52
como quedaria el SQL para este Query?? JCarlos Conexión con bases de datos 2 15-11-2004 12:59:28


La franja horaria es GMT +2. Ahora son las 20:32:01.


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