Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-01-2007
yo_coco_py yo_coco_py is offline
Registrado
 
Registrado: may 2005
Posts: 8
Poder: 0
yo_coco_py Va por buen camino
como mostrar consultas multiples en un dbgrid??

Usando delphi 7 e interbase como base de datos... y un ibquery para conexion.
El problema que tengo es que quiero mostrar datos de diferentes consultas en un grilla y no se como hacerlo..
Tengo en mi BD una tabla alumnos y otra de cuotas y lo que quiero es:
nombre cuota1 cuota2 cuota3 cuotan
juan x x x
pedro x x
luis x x x x

Primera fila bien: select nombre from alumnos
para consulta de un alumno especifico bien: select cuotas_pagadas from cuotas alumnos where id_alumno = 1(juan) and alumno.id_alumno = cuotas.id_alumno
El problema es como hago para mostrar de todos juntos en la grilla..???
Responder Con Cita
  #2  
Antiguo 16-01-2007
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
Explica un poco más la estructura y relaciones de las tablas implicadas para que podamos decirte algo.

Y de paso pon el código entre sus correspondientes etiquetas que sino es un incordio leerlo.
Responder Con Cita
  #3  
Antiguo 17-01-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Realiza un inner join de ambas por el campo que tengan en común, yo supongo que es idalumno:

Código SQL [-]
select A.nombreAlumno, C.cuota1, C.Cuota2 from
Alumnos A inner join cuotas C on
A.idalumno = C.idalumno

Como ves he usado abreviaturas (alias) para las tablas, de forma que Alumnos la renombro a "A" y Cuotas a "C"

saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 17-01-2007
yo_coco_py yo_coco_py is offline
Registrado
 
Registrado: may 2005
Posts: 8
Poder: 0
yo_coco_py Va por buen camino
Talking Mejor exlicado...

Bueno.. en realidad lo que quiero mostrar en la grilla son los datos de dos tablas,
en una columna, los datos de un curso especifico, o sea, los nombres de los alumnos,
y seguido el detalle de cuotas pagadas(que se encuentra en el detalle de la tabla de estado de cuentas)...
Mostrar los alumnos no es problema..
y tampoco el estado de cuenta de un solo alumno,
pero cuando quiero mostrar de todos juntos en la grilla es el problema..
Este es el codigo para mostrar los alumnos:
Código SQL [-]
select distinct ID_ALUMNO, apellido  || nombre
from alumnos_inscriptos, alumnos, curso, estado_cuenta
where alumnos.id_alumno = alumnos_inscriptos.id_alumno
and curso.id_curso = alumnos_inscriptos.id_curso
and estado_cuenta.id_alumno = alumnos_inscriptos.id_alumno
and curso.id_curso = 0
order by alumnos.apellido
____________________________________
Con esta consulta muestro los datos de una persona:
Código SQL [-]
select * from  estado_cuenta, detalle_cuenta
where estado_cuenta.id_estado = detalle_cuenta.id_estado
and estado_cuenta.id_estado = 1
___________________________________
el numero 1 es solo a modo de ejemplo..
Ojala se entienda mejor lo que quiero hacer y perdon por las etiquetas (ojala salgan), pero es la primera vez en el foro..
PD: las relaciones se pueden observar en el codigo...
Responder Con Cita
  #5  
Antiguo 17-01-2007
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 22
Crandel Va por buen camino
Como dijo kuan-yiu, la estructura de las tablas es lo que se necesita.
__________________
[Crandel]
Responder Con Cita
  #6  
Antiguo 27-01-2007
FOURIER FOURIER is offline
Miembro
 
Registrado: dic 2005
Posts: 40
Poder: 0
FOURIER Va por buen camino
Espero te sirva

Te voy a poner un ejemplo a ver si me explico

Aqui se usa lainstrucción CASE , aplicando un CASE a cada valor de pivote y agrupando su resultado por medio de una función de agregado como SUM. El valor a agregar puede ser de dos tipos: un valor fijo, u otra columna dentro de la tabla. El resultado de aplicar este método al problema anterior es el siguiente:

Código SQL [-]
SELECT f_vendedor,
            SUM(CASE MONTH(f_fecha_expedicion)
                WHEN 4 THEN f_vlor_total
                ELSE 0
              END) AS Abril,
            SUM(CASE MONTH(f_fecha_expedicion)
                WHEN 5 THEN f_vlor_total
                ELSE 0
              END) AS Mayo,
            SUM(CASE MONTH(f_fecha_expedicion)
                WHEN 6 THEN f_vlor_total
                ELSE 0
              END) AS Junio
FROM  #tblPedidos
GROUP BY f_vendedor
ORDER BY f_vendedor


El resultado de esa consulta es algo más o menos así:


Vendedor
Abril
Mayo
Junio
1
125000.00
992450.00
211000.00
2
20000.00
.00
458000.56
3
.00
.00
100000.00
Responder Con Cita
  #7  
Antiguo 27-01-2007
FOURIER FOURIER is offline
Miembro
 
Registrado: dic 2005
Posts: 40
Poder: 0
FOURIER Va por buen camino
Vendedor Abril Mayo Junio
1 1000 500 750
2 2000 400 800
3 3000 400 900
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
Consultas en SQL de una tabla y mostrar en un dbgrid Goyo SQL 1 02-10-2006 21:17:24
Como tratar multiples seleccionados en DBGrid vivamotos C++ Builder 1 14-09-2006 18:26:40
como mostrar tres tablas en un dbgrid? soma25 C++ Builder 3 30-06-2006 00:17:34
como mostrar campo BLOB en un DBGrid jmlifi Varios 1 10-08-2005 17:35:32
Como mostrar decimal en DBGRID andrestsas Varios 2 08-08-2003 20:32:14


La franja horaria es GMT +2. Ahora son las 08:52:57.


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