PDA

Ver la Versión Completa : Colocar Nombre a una fila de DBGrid


FGarcia
21-10-2006, 07:24:11
Saludos!

Actualmente hago esta consulta :


SELECT DISTINCTROW Captura.ID, COUNT (*) AS Envios,
SUM (Captura.Peso) AS [Total]
FROM Captura
GROUP BY Captura.ID;


El resultado lo muestro en un DBGrid quedando algo asi:

================
ID | Envios | Total |
================
1 | 45| 2345
---------------------
2 | 33 | 1980
---------------------
3 | 17 | 95
---------------------
4 | 100| 500
---------------------
5 | 65| 380
---------------------

Mi duda es ¿Como puedo cambiar el NUMERO del ID por un NOMBRE es decir
que el resultado se vea de esta forma

================
ID | Envios | Total |
================
Jose | 45| 2345
---------------------
Luis | 33 | 1980
---------------------
Angel| 17 | 95
---------------------
Ana | 100| 500
---------------------
Luisa| 65| 380
---------------------

OJO no puedo cambiar el ID de numero a cadena (¡que facil!). La consulta siempre me regresa un numero pues asi se guarda en la tabla.

Agradeciendo su ayuda!

leodelca23
21-10-2006, 10:15:21
Mira podrias hacer otra tabla con el id y nombre entonces pondrias en la tabla un campo lookup y se solucionaria el problema en vez de mostrarte el id te mostraria el nombreal que apunta por ej asi seria la tabla:

=========
ID | Nombre|
=========
1 | Jose
------------
2 | Luis
------------
3 | Angel
------------
4 | Ana
------------

y como vos decis quedaria la tabla que mostra en el dbgrid
5 | Luisa
------------

Lepe
21-10-2006, 15:36:45
SELECT DISTINCTROW Captura.ID, C.Nombre, COUNT (*) AS Envios,
SUM (Captura.Peso) AS [Total]
FROM Captura inner join Clientes C on Cliente.Id = Captura.Id
GROUP BY Captura.ID, C.Nombre;


No lo he probado, pero creo que funcionaría. Despues, si vas a mostrarlo en un Grid, ocultas la columna ID y solo verás lo que deseas.

Saludos

FGarcia
20-11-2006, 22:53:10
Hola!
Mil disculpas por no haber contestado antes a este hilo pero por causas de trabajo no habia tocado mi pc y ya estoy retomando los pendientes que habia dejado.

Lepe:

Entiendo que segun tu codigo SQL debo de crear una tabla llamda "C" la cual contendra los campos ID y Nombre. lo que me trae en duda es "Clientes" que se encuentra despues de la sentencia INNER JOIN y "Cliente.ID" ¿estos que representan?

Gracias por responder

EDICION 3 horas despues:

Quedo solucionado asi:

SELECT DISTINCTROW Captura.Bascula, setup.nombre, COUNT (*) AS Sacos,
SUM (Captura.Peso) AS [Total]
FROM Captura INNER JOIN Setup on Captura.Bascula = Setup.Bascula
GROUP BY Captura.Bascula, Setup.Nombre;

Cree la tabla Setup con los campos nombre y bascula, en el componente ADOQuery añadi el campo setup.nombre y lo visualize en la rejilla en lugar del Captura.Bascula y todo funcionando.