Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

multiplicacion de 2 tablas en c++ builder

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: multiplicacion de 2 tablas en c++ builder Responder citando

Estoy trabajando en c++ builder donde tengo una coneccion a acces a taves de ado, luego ataves de un select selecciono 2 columnas de diferentes tablas de acces , que son enviadas a un Adodataset, que a su vez son conectadas a un Dbgrid, necesito multiplicar estas 2 columnas y su resultado introducirlo a una nueva columna , para finalmente enviarla a otra tabla de acces.

Desde ya gracias
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Una aclaración: ¿Celda a celda o como una matriz matemática? Me explico. No entiendo si lo que queires es multiplicar la cela A1 de la primera matriz por la A1 de la segunda y guardarlo en la A1 del resultado, etc. O bien tomar una matriz M de dimensión AxB y multiplicarla por otra N de dimensiones BxA
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Lo que necesito es multiplicar

C1=A1*B1
C2=A2*B2

Donde A1, A2 de la columna de la tabla1
y B1, B2 de la columna de la tabla2
Para enviarlo a una tabla C

atraves de una tquery traigo la columna de la tabla 1 y la columna de la tabla 2 a un dataset que a su vez van a un dbgrid a taves de un datasource.


Yo creo que tengo que pasar esta consulta a una matriz y ahi poder trabajar con estos valores, si me puedes ayudar te estare agradecido


desde ya gracias
Volver arriba
Mensaje    Asunto: Responder citando

Con el ejemplo que has puesto tienes un problema: las dos tablas tienen que tener exactamente el mismo número de filas. Si el caso es que siempre sea así, no hay problema. O bien tienes alguna forma de limitar los registros que se extraen.

De todas formas, lo que quieres hacer se puede hacer con un solo query SQL, siempre que haya un campo común en ambas tablas. Supongamos una tabla 1 (Table1) con dos campos: Referencia e Importe, y una tabla 2 (Table2) con otro dos campos: Referencia y Existencias. Con un sólo query (Query1) te podría quedar así:
Código:
Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add("SELECT A.Importe, B.Existencia,");
Query1->SQL->Add("      (A.Importe * B.Existencia) Total");
Query1->SQL->Add("  FROM 'Table1' A, 'Table2' B");
Query1->SQL->Add(" WHERE A.Referncia = B.Referencia");
Query1->SQL->Add( GROUP BY A.Importe, B.Existencia");
Query1->Open();

Con este único query lograrás una tabla de salida con tres columnas, siendo la tercera el producto de las dos primeras. No sé si será esto lo que buscabas.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: GRACIAS Responder citando

Gracias por tu ayuda,
pero por que el query Close();
primero lo cierro y al final ago un query open ();
Volver arriba
Mensaje    Asunto: Responder citando

Eso es para asegurarte de que la consulta (Query) este cerrada y no haya quedado con los datos de una ejecucion anterior.-

Saludos!!
_________________
"Ser inteligente no es ser mas, solo equivocarse menos y no usar Visual Basic"
Atte.
Victor Yañez

Apoyen el Proyecto OpenSource del Club Builder. Ya tenemos componentes Listos!!!
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Yahoo Messenger MSN Messenger
Mensaje    Asunto: Responder citando

Efectivamente. Viktor te lo ha dicho; y el SQL->Clear() es para asegurarnos que el código de la consulta está vacío.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.