Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Problema con un Query!!!! (https://www.clubdelphi.com/foros/showthread.php?t=15935)

Carmen 10-11-2004 02:36:12

Problema con un Query!!!!
 
Hola a todos,
Mi problema parece ser simple, pero debido a mi poco conocimiento a respecto estoy pasando un gran aprieto... A continuación les explico con detalles..
Tengo 2 tabla en Paradox7 con los siguentes campos:
Tabla1
1. ID
2. No. de Cuenta (NC)
3. No. de Inventario (NInv)
4. Descripción (Descrip)
5. Centro de Costo (CC)
6. Origen (Origen)
7. Fecha. de Adquisición (FA)

Tabla2
1. Anotado en Control (AC)
2. Fisico (Fisico)
3. Identificados (Identif)
4. Resultado (Result)
5. Observaciones (Observ)
6. Fecha (Fecha)
7. Invent (que hace referencia el ID de la tabla1

Lo que quiero es lo siguiente:
Deseo mostrar en un DBGrid los campos de la tabla2 y ademas los campos NC, NInv, Descrip, CC de la tabla1.
El Invent de la tabla2 es el que me serviria de enlace para la tabla1, pues las tablas no las puedo unir para hacer una sola, ya que los datos de la tabla2 se repiten todos los meses para cada uno de los datos de la tabla1, y al final repitiria mucho los datos de la tabla1. Es eso posible?????
Agradeciria toda la ayuda que me pudieran brindar para mostrar los datos que me hacen falta en el DBGrid.
Por favor si no les fuera mucha molestia de explicarme bien esto, pues realmente tengo graves problemas...:( Podria usar un Query con una consulta SQL para esto???? en caso de que fuera posible, me podria explicar como, pues no se trabajar con el SQL en Delphi, donde lo he trabajo es en Access....

Muchas gracias y disculpen la molestia...

roman 10-11-2004 06:18:48

El SQL que uses en Access te funcionará en muchos casos en Paradox salvo quizá pequeños detalles de sintaxis.

En tu caso creo que podías intentar algo como:

Código SQL [-]
select
  tabla2.*,
  tabla1.NC, tabla1.NInv, tabla1.Descrip, tabla1.CC
from
  tabla2, tabla1
where
  tabla2.Invent = tabla1.ID

Otra opción es usar TTable para cada tabla (digamos Table1 y Table2) y agregar a Table2 campos "lookup" por cada campo que te interese de Table1.

Para hacer esto abre el editor de campos de Table2 (doble click sobre la componente) y en su menú contextual selecciona la opción "Add all fields" o bien "Add fields..." para seleccionar los campos de la tabla 2 que desees mostrar.

Para agregar los campos "lookup" te pongo el ejemplo para el campo NC de la tabla1:

En el menú contextual del editor de campos de Table2 selecciona la opción "Add new field...". Te aparece un cuadro de diálogo para crear el nuevo campo. Escribe el nombre que desses para el nuevo campo (por ejemplo NC), selecciona el tipo de datos del campo y su longitud (en caso de que aplique; si es un string por ejemplo, escoge la longitud máxima del campo).

Asigna las propiedades del recuadro "Lookup definition" como sigue:

DataSet -> Table1 (tabla de donde sacar los datos)
ResultField -> NC (campo de tabla1 que vas a mostrar)
Lookup Keys -> ID (campo(s) en tabla1 que hace la relación)
Key Fields -> Invent (campo(s) en tabla2 que hace la relación)

Y listo. Hace esto para los otros campos NInv, Descrip, CC.

// Saludos

Carmen 10-11-2004 14:45:21

Hola Roman,
Muchisimas gracias por la explicación tan detalla, me fue muy util. Lo hice con la opción dos y me quedo bien.. Te estoy muy agradecida...
Pero ahora tengo una dudita pequeña:
De esa manera que lo hize hay posiblilidades de poder filtrar por centro de costo y fecha????. De manera tal que aunque los datos de la tabla 2 esten en blancos me muestre los datos de la tabla1....
Gracias Nuevamente..


La franja horaria es GMT +2. Ahora son las 15:43:28.

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