Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-02-2008
Avatar de Raynel
Raynel Raynel is offline
Miembro
 
Registrado: sep 2007
Posts: 40
Poder: 0
Raynel Va por buen camino
Consulta SQL para varios campos

Saludos amigos, tengo una duda y no encuentro como resolverlo.
Cómo hago para ejecutar un Query donde necesito hacer un select a varios campos, es decir, tengo los campos: campo1,campo2,campo3,campo4,etc; y necesito hacer la consulta al campo1 y campo2, campo1 y campo3, campo1 y campo 4, etc; he leído desde varios SELECT hasta el help de Delphi donde habla de WHERE CONTAINS, pero que va, estoy trasnochao. jejejeje gracias.
Responder Con Cita
  #2  
Antiguo 12-02-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 Raynel Ver Mensaje
Saludos amigos, tengo una duda y no encuentro como resolverlo.
Cómo hago para ejecutar un Query donde necesito hacer un select a varios campos, es decir, tengo los campos: campo1,campo2,campo3,campo4,etc; y necesito hacer la consulta al campo1 y campo2, campo1 y campo3, campo1 y campo 4, etc; he leído desde varios SELECT hasta el help de Delphi donde habla de WHERE CONTAINS, pero que va, estoy trasnochao. jejejeje gracias.

Y yo me pregunto ¿Donde está el problema? Tu mismo te das la solucion.

Código SQL [-]
select campo1, campo2, ... campoN
from tu_tabla
where (listado_de_condiciones)

Recomiendo la lectura de algún manual SQL.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #3  
Antiguo 12-02-2008
Avatar de Raynel
Raynel Raynel is offline
Miembro
 
Registrado: sep 2007
Posts: 40
Poder: 0
Raynel Va por buen camino
Gracias Delphius, debe ser que estoy ya un poco agotado, lo probare más tarde. Thankyou!!!!!
Responder Con Cita
  #4  
Antiguo 12-02-2008
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Código SQL [-]
select campo1, campo2...campon 
from tabla
where (campo1=condicion1) and (campo2=condicion2) and ...(campon=condicionn)
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #5  
Antiguo 12-02-2008
Avatar de Raynel
Raynel Raynel is offline
Miembro
 
Registrado: sep 2007
Posts: 40
Poder: 0
Raynel Va por buen camino
casi casi

Más bien, mi consulta sería:



Código SQL [-]
SELECT * FROM Tabla WHERE (Campo1=dato1 AND Campo2=dato2) OR (Campo1=dato1 AND Campo3=dato2) OR (Campo1=dato1 AND Campo4=dato2) etc.





Me imagino que sería así ¿no?

Última edición por Raynel fecha: 12-02-2008 a las 22:35:00.
Responder Con Cita
  #6  
Antiguo 12-02-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
Sólo tu nos podrías decir si lo que deseas es una consulta así.

¿Porqué nos preguntas?
No tenemos la información adecuada para afirmar o negar si tu consulta está bien o mal.

Tal vez pueda simplificarse esa serie de condiciones. Armando una tabla de verdad se podría saber si se puede resumir.

¿Cúantos campos tienes? ¿Es necesario que compares con todos los campos?
Como dije... no sabría decirte si está bien o mal porque desconozco lo que deseas hacer.

EDITO:
Si sólo fueran esos lo campos en el where, dichas condiciones se pueden resumir a esta equivalente:

Código SQL [-]
where (campo1 = dato1) AND ((campo2 = dato2) OR (campo3 = dato2) OR (campo4 = dato2))

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]

Última edición por Delphius fecha: 13-02-2008 a las 00:46:23.
Responder Con Cita
  #7  
Antiguo 13-02-2008
Avatar de Raynel
Raynel Raynel is offline
Miembro
 
Registrado: sep 2007
Posts: 40
Poder: 0
Raynel Va por buen camino
Ya solucionado pero....

Bueno la consulta se realizó con éxito, pero sería interesante conocer un método para muchos campos (lo admito lo desconozco), aunque no soy muy diestro en Delphi y sé solo lo básico de SQL, estoy aprendiendo; en el programa que estoy haciendo lo hago con tablas planas, en concreto Paradox. Gracias por el empujoncito jejejeje. Hoy si me acuesto temprano, no quiero pernoctarme y acostumbrarme al huso horario chino jejejejeje. Buenas noches a todos y suerte!!!!!.
Responder Con Cita
  #8  
Antiguo 13-02-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 Raynel Ver Mensaje
Bueno la consulta se realizó con éxito, pero sería interesante conocer un método para muchos campos (lo admito lo desconozco), aunque no soy muy diestro en Delphi y sé solo lo básico de SQL, estoy aprendiendo;
¿Que haz querido decir con eso?
¿Muchos campos? ¿Cúanto es mucho?
Realizar un SQL que en su parte where tiene demasiadas condiciones no es tan productivo. Más si se trata de Paradox. Cuanto más condiciones tengas, si bien filtrarás lo que no desees, el motor necesita de más tiempo para procesar.

Una SQL que incluya muchos campos... ¿a que quieres llegar? Eso me pregunto yo... De forma genérica se tiene:

Código SQL [-]
select tabla1.campo1, ... tabla2.campoN, ... tablaN.campoN
from tabla1, ... tablaN
where...

Si la consulta debe devolver 30, 40, 100 campos... (no registros) que los devuelva. Pero también una buena consulta SQL en su parte WHERE no debería tener más del 30 0 40% de los campos que intervienen en su parte SELECT.

Por lo general, no tiene sentido y significado alguno una consulta que:
1. Este formada por muchos campos, O bien.
2. Que implemente demasiados "filtros".

Esto es debido a que:
1. Los informes o consultas deben ser breves, resumidos. Un resumen no es algo que te muestra 30 campos.
2. Muchos filtros pueden hacer que se pierda de vista otros registros que si podrían ser considerados en la consulta.

En estos casos, sería recomendable partir la consulta en varias consultas parciales.

Considero que si explicas tu problema (la raiz de todo) vas a encontrar una respuesta más exacta.
Estoy adivinando... ¡Que deseas!

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #9  
Antiguo 13-02-2008
Avatar de Raynel
Raynel Raynel is offline
Miembro
 
Registrado: sep 2007
Posts: 40
Poder: 0
Raynel Va por buen camino
Cita:
Empezado por Delphius Ver Mensaje

Esto es debido a que:
1. Los informes o consultas deben ser breves, resumidos. Un resumen no es algo que te muestra 30 campos.
2. Muchos filtros pueden hacer que se pierda de vista otros registros que si podrían ser considerados en la consulta.
Tienes razón Delphius, para lograr una consulta eficiente se debe seguir lo anterior aunado a una buena interpretación de lo que quieres conseguir (obvio!!); solo imaginaba para una tabla que no contuviera no mas de 40 campos, aunque es mejor manejarlos por array y no una tabla; te explico, el programa que estoy haciendo toma ciertos números y hace un conteo que a su vez vuelve a hacer otro conteo de este último conteo (para resumirte un poco), y por ahí me largo con ecuaciones estadísticas y demás especias. Antes lo hice pero archivando estos números en un .dat, y ahora lo quiero hacer con tablas planas. Te comento que mi tabla no pasa de 12 campos. Y están ordenados por fechas (ya de ahí lo de ordenar será después). Espero que me ayuden en este proyecto, ya que incluirá exportar a un archivo Excel (he tomado unos tips del foro, los estudiaré más adelante). Este foro es una tremenda biblioteca de recursos.
Responder Con Cita
  #10  
Antiguo 13-02-2008
Avatar de Raynel
Raynel Raynel is offline
Miembro
 
Registrado: sep 2007
Posts: 40
Poder: 0
Raynel Va por buen camino
Cita:
Empezado por Delphius Ver Mensaje

Esto es debido a que:
1. Los informes o consultas deben ser breves, resumidos. Un resumen no es algo que te muestra 30 campos.
2. Muchos filtros pueden hacer que se pierda de vista otros registros que si podrían ser considerados en la consulta.
Tienes razón Delphius, para lograr una consulta eficiente se debe seguir lo anterior aunado a una buena interpretación de lo que quieres conseguir (obvio!!); solo imaginaba para una tabla que no contuviera no mas de 40 campos, aunque es mejor manejarlos por array y no una tabla; te explico, el programa que estoy haciendo toma ciertos números y hace un conteo que a su vez vuelve a hacer otro conteo de este último conteo (para resumirte un poco), y por ahí me largo con ecuaciones estadísticas y demás especias. Antes lo hice pero archivando estos números en un .dat, y ahora lo quiero hacer con tablas planas. Te comento que mi tabla no pasa de 12 campos. Y están ordenados por fechas (ya de ahí lo de ordenar será después). Espero que me ayuden en este proyecto, ya que incluirá exportar a un archivo Excel (he tomado unos tips del foro, los estudiaré más adelante). Este foro es una tremenda biblioteca de recursos. Gracias a todos.

Responder Con Cita
  #11  
Antiguo 13-02-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 Raynel Ver Mensaje
Tienes razón Delphius, para lograr una consulta eficiente se debe seguir lo anterior aunado a una buena interpretación de lo que quieres conseguir (obvio!!); solo imaginaba para una tabla que no contuviera no mas de 40 campos, aunque es mejor manejarlos por array y no una tabla; te explico, el programa que estoy haciendo toma ciertos números y hace un conteo que a su vez vuelve a hacer otro conteo de este último conteo (para resumirte un poco), y por ahí me largo con ecuaciones estadísticas y demás especias. Antes lo hice pero archivando estos números en un .dat, y ahora lo quiero hacer con tablas planas. Te comento que mi tabla no pasa de 12 campos. Y están ordenados por fechas (ya de ahí lo de ordenar será después). Espero que me ayuden en este proyecto, ya que incluirá exportar a un archivo Excel (he tomado unos tips del foro, los estudiaré más adelante). Este foro es una tremenda biblioteca de recursos. Gracias a todos.
La mayoría de los motores cuentan con funciones estadísticas simples como ser media, varianza, además de las sumas, conteo, máximos, mínimos.

Los manuales SQL explican estos temas. Lee Raynel, lee... no importa la cantidad de los campos (12 es un valor aceptable).

por ejemplo:

Código SQL [-]
select AVG(campoA)
from tabla
where (algo)
devolverá el promedio del contenido de campoA que cumplan la condición Algo.

Necesitarías revisas que "especias" son las que realizas y corroborar que estén soportadas por Paradox, aunque yo no creo que disponga de mucho. Para cosas más elaboradas habrá que traer el conjunto de registros, almacenarlos en un array talvez, y pasarlo a una funcion hecha en Delphi.

Más no puedo decirte. Solo LEE.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #12  
Antiguo 13-02-2008
Avatar de Raynel
Raynel Raynel is offline
Miembro
 
Registrado: sep 2007
Posts: 40
Poder: 0
Raynel Va por buen camino
Gracias. eso haré.
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
varios campos en un dblookupcombobox anubis Varios 6 26-06-2007 04:24:50
Consulta para Filtrar Dos Campos don malo SQL 3 05-06-2007 09:21:40
Top con varios campos trex2000 MS SQL Server 1 04-10-2006 21:12:15
agrupar varios campos satabel Impresión 0 03-08-2005 18:17:17
Consulta SQL para cambiar el orden natural de los campos de una tabla txemag Firebird e Interbase 4 23-07-2004 19:15:08


La franja horaria es GMT +2. Ahora son las 09:01:49.


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