Ver la Versión Completa : ¿Cómo usar TClientDataSet?
strelok
28-11-2017, 18:57:38
Hola,
a estas horas ya no pienso, por lo que necesito ayuda:
Tengo un Dataset, con N filas, cada fila tiene N columnas, algunas de estas columnas son "iva", "base", "id cliente".
Lo que quiero es calcular el total usando IVA y BASE, de esas N filas, agrupado por id cliente.
Es decir, sumar las N filas de cada cliente, y saber el total de ellos
roman
28-11-2017, 19:02:09
Esto lo puedes resolver con una consulta SQL del tipo:
SELECT id_cliente, sum(iva*base)
from tabla
group by id_cliente
LineComment Saludos
strelok
28-11-2017, 19:08:26
Si, con SQL es fácil, pero esas N filas las tengo en un DataSet, la verdad tengo poca por no decir nula experiencia con los componentes de Delphi. Por ende, ¿como hago esa consulta SQL a los resultados obtenidos de otra SQL, es decir, a lo que se encuentra en el DataSet?
roman
28-11-2017, 20:50:58
Podrías enlazar un ClientDataSet a tu Dataset. El ClientDataset puede manejar campos agregados que sería lo que requires.
LineComment Saludos
jhonny
28-11-2017, 22:33:51
Por ende, ¿como hago esa consulta SQL a los resultados obtenidos de otra SQL, es decir, a lo que se encuentra en el DataSet?
Con el componente TFDLocalSQL puedes hacer una consulta a un DataSet.
(MAJ)
29-11-2017, 05:49:41
Si, con SQL es fácil, pero esas N filas las tengo en un DataSet, la verdad tengo poca por no decir nula experiencia con los componentes de Delphi. Por ende, ¿como hago esa consulta SQL a los resultados obtenidos de otra SQL, es decir, a lo que se encuentra en el DataSet?
si lo que entiendo es que los datos que querés sumar, son el resultado de otra consulta sql, porque mejor no haces una consulta anidada para poder hacer la operación dentro de la consulta y solo recibir los datos que vas a utilizar...
SELECT id_cliente, sum(iva*base) from tabla
(
SELECT CampoDePrimeraConsulta
FROM tabla
WHERE PrimeraConsulta
)
group by id_cliente
De esta forma no necesitas hacer tanto problema con el dataset que a la larga te va a traer problemas
strelok
29-11-2017, 09:12:39
Muchas gracias a todos, lo intentaré :)
Luego les comento que tal.
strelok
29-11-2017, 09:18:06
Cierto que no tengo ni idea de como hacerlo, jajaja, que componente es exactamente ClientDataSet o DataSetProvider ¿como se enlazan?
Casimiro Notevi
29-11-2017, 09:59:43
Cierto que no tengo ni idea de como hacerlo, jajaja, que componente es exactamente ClientDataSet o DataSetProvider ¿como se enlazan?
Entonces, lo mejor es empezar por aquí (http://terawiki.clubdelphi.com/Delphi/Manuales/?download=La_Cara_Oculta_De_Delphi_4_pdf_.zip).
strelok
29-11-2017, 10:30:06
He realizado otra consulta, usando otro DataSet, menos efectivo para por lo menos me da solución
strelok
30-11-2017, 12:24:48
Hola a todos,
Tengo un DataSet con muchísimos campos y algunos de ellos son calculados. Necesito obtener uno de esos campos calculados de ese DataSet, pero si se cumplen ciertas condiciones.
Por lo que opté por crear un TClientDataSet y lo enlacé con un TDataSetProvieder, a este último lo enlacé con mi DataSet.
1- No tengo idea si los enlacé correctamente
2- ¿Cómo puedo consultar el dataset?
Necesito obtener "total" siempre y cuando se cumplan 3 condiciones, pero la principal pregunta es SELECT TOTAL FROM [¿AQUÍ NO SE QUE VA, NOMBRE DEL DATASET O TABLA A LA QUE APUNTA EL DATASET?]
Casimiro Notevi
30-11-2017, 13:19:20
http://terawiki.clubdelphi.com/Delphi/Manuales/?download=La_Cara_Oculta_De_Delphi_4_pdf_.zip
http://www.intitec.com/varios/La_potencia_de_los_TClientDataSet.pdf
strelok
30-11-2017, 13:22:05
Gracias, pero ya vi ese ejemplo en otra web y en ningún momento usa la propiedad "CommandText", también abrí ese libro y no lo encontré :(
~ http://www.clubdelphi.com/foros/showpost.php?p=522962&postcount=5
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.