Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-11-2017
strelok strelok is offline
Miembro
 
Registrado: sep 2017
Posts: 181
Poder: 7
strelok Va por buen camino
Como recorrer y agrupar un DataSet?

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
Responder Con Cita
  #2  
Antiguo 28-11-2017
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Esto lo puedes resolver con una consulta SQL del tipo:

Código SQL [-]
SELECT id_cliente, sum(iva*base)
from tabla
group by id_cliente

LineComment Saludos
Responder Con Cita
  #3  
Antiguo 28-11-2017
strelok strelok is offline
Miembro
 
Registrado: sep 2017
Posts: 181
Poder: 7
strelok Va por buen camino
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?
Responder Con Cita
  #4  
Antiguo 28-11-2017
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Podrías enlazar un ClientDataSet a tu Dataset. El ClientDataset puede manejar campos agregados que sería lo que requires.

LineComment Saludos
Responder Con Cita
  #5  
Antiguo 28-11-2017
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por strelok Ver Mensaje
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.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #6  
Antiguo 29-11-2017
(MAJ) (MAJ) is offline
Miembro
 
Registrado: abr 2007
Posts: 71
Poder: 17
(MAJ) Va por buen camino
Cita:
Empezado por strelok Ver Mensaje
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...

Código SQL [-]
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
Responder Con Cita
  #7  
Antiguo 29-11-2017
strelok strelok is offline
Miembro
 
Registrado: sep 2017
Posts: 181
Poder: 7
strelok Va por buen camino
Muchas gracias a todos, lo intentaré
Luego les comento que tal.
Responder Con Cita
  #8  
Antiguo 29-11-2017
strelok strelok is offline
Miembro
 
Registrado: sep 2017
Posts: 181
Poder: 7
strelok Va por buen camino
Cierto que no tengo ni idea de como hacerlo, jajaja, que componente es exactamente ClientDataSet o DataSetProvider ¿como se enlazan?
Responder Con Cita
  #9  
Antiguo 29-11-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por strelok Ver Mensaje
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í.
Responder Con Cita
  #10  
Antiguo 29-11-2017
strelok strelok is offline
Miembro
 
Registrado: sep 2017
Posts: 181
Poder: 7
strelok Va por buen camino
He realizado otra consulta, usando otro DataSet, menos efectivo para por lo menos me da solución
Responder Con Cita
  #11  
Antiguo 30-11-2017
strelok strelok is offline
Miembro
 
Registrado: sep 2017
Posts: 181
Poder: 7
strelok Va por buen camino
Thumbs down ¿Cómo usar TClientDataSet?

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?]
Responder Con Cita
  #13  
Antiguo 30-11-2017
strelok strelok is offline
Miembro
 
Registrado: sep 2017
Posts: 181
Poder: 7
strelok Va por buen camino
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é
Responder Con Cita
  #14  
Antiguo 30-11-2017
Avatar de TOPX
TOPX TOPX is offline
Miembro
 
Registrado: may 2008
Ubicación: Bogotá
Posts: 527
Poder: 16
TOPX Va camino a la fama
~ http://www.clubdelphi.com/foros/show...62&postcount=5
__________________
"constructive mind, destructive thoughts"
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Como eliminar un registro de un TClientDataSet padillinjp Varios 2 12-08-2015 05:24:04
Como usar otras Forms como ancestros Naldo Lazarus, FreePascal, Kylix, etc. 8 27-04-2015 17:54:22
como usar una imagen como boton? negrokau Varios 5 20-05-2011 17:54:26
Cómo NO usar Group By... Walterio SQL 9 02-12-2010 16:05:59
Cómo usar una dll masetru Varios 1 20-12-2003 15:15:50


La franja horaria es GMT +2. Ahora son las 23:45:12.


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