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 05-11-2015
aromigaret aromigaret is offline
Miembro
 
Registrado: jun 2011
Posts: 68
Poder: 13
aromigaret Va por buen camino
Pasar datos de un adoquery a una tabla ado

Hola, por favor si alguien puede ayudarme con el siguiente inconveniente, tengo una tabla llamada 'Pedidos' en ella los campos son cantidad, código, ubicación. Por supuesto puede haber varios códigos iguales con distintas cantidades. Necesito ordenar la tabla por el campo 'ubicación' y con los códigos iguales, sumar todos las cantidades y dejar un único registro. Para ello se me ocurrió hacer lo siguiente:

Código Delphi [-]
AUXILIAR.Close;
AUXILIAR.SQL.Text:='SELECT SUM(CANTIDAD),CODIGO,MAX(UBICACION) FROM PEDIDOS '+
                   'WHERE CANTIDAD <> NULL AND CODIGO <> NULL GROUP BY CODIGO';
AUXILIAR.Open;

el MAX(UBICACION) fue necesario, ya que sin el, no funcionaba el GROUP BY.
En un Dbgrid veo el resultado y funciona la agrupación de los que están repetidos, pero ahora no se como pasar esta consulta a otra nueva tabla 'Ordenada' la cual será ordenada luego por el campo ubicacion y enviada por ftp.

Muchas Gracias.

Última edición por ecfisa fecha: 05-11-2015 a las 17:37:45. Razón: Ajustar código al ancho de visualización
Responder Con Cita
  #2  
Antiguo 05-11-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola aromigaret.

No sé con que gestor de BD estas trabajando, pero de este modo:
Código SQL [-]
SELECT CODIGO, SUM(CANTIDAD)
FROM PEDIDOS
WHERE CANTIDAD IS NOT NULL AND CODIGO IS NOT NULL
GROUP BY CODIGO
me agrupa las sumatorias de cantidad por código sin problemas (o tal vez entendí mal lo que estas intentando hacer).

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 05-11-2015
aromigaret aromigaret is offline
Miembro
 
Registrado: jun 2011
Posts: 68
Poder: 13
aromigaret Va por buen camino
Thumbs up

ecfisa, gracias por contestar. La agrupación funciona bien con 'Group by', mi problema radica en que ese resultado, lo quiero volcar a una nueva tabla. Es decir la tabla 'pedidos' está desagrupada y quiero agrupar los registros en una nueva tabla llamada 'ordenada'.

tabla 'pedidos':

cantidad código
2 001
5 003
1 001

resultado en tabla 'ordenada':

cantidad código
3 001
5 003

Utilizo tablas .dbf y este programa no se ejecuta en Red.
Responder Con Cita
  #4  
Antiguo 05-11-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola de nuevo.

Entiendo... entonces creo que la sentencia debería ser:
Código SQL [-]
INSERT INTO PEDIDOS2 (CODIGO, CANTIDAD) /* (*) */
SELECT CODIGO, SUM(CANTIDAD)
FROM PEDIDOS P
WHERE P.CODIGO IS NOT NULL AND P.CANTIDAD IS NOT NULL
GROUP BY CODIGO
(*) Donde PEDIDOS2 sería la tabla "ordenada"

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 05-11-2015
aromigaret aromigaret is offline
Miembro
 
Registrado: jun 2011
Posts: 68
Poder: 13
aromigaret Va por buen camino
Ecfisa, impecable !!! Muchísimas gracias!!!
Y para ponerle la frutilla al postre.... En el mismo SQL se podrá poner 'Order by' para que ordene por un campo especifico al guardarlo en la nueva tabla?
Responder Con Cita
  #6  
Antiguo 05-11-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola aromigaret.

Siempre que la columna se encuentre en el SELECT no habría inconveniente, por ejemplo:
Código SQL [-]
INSERT INTO PEDIDOS2 (CODIGO, CANTIDAD)
SELECT P.CODIGO, SUM(P.CANTIDAD)
FROM PEDIDOS P
WHERE P.CODIGO IS NOT NULL AND P.CANTIDAD IS NOT NULL
GROUP BY P.CODIGO
ORDER BY P.CODIGO DESC
y las columnas por las cuales se podría ordenar, estarían limitadas a aquellas que se fueran a insertar (en el caso anterior sólamente P.CODIGO).

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 06-11-2015
aromigaret aromigaret is offline
Miembro
 
Registrado: jun 2011
Posts: 68
Poder: 13
aromigaret Va por buen camino
Crear tabla ado con la union de dos tablas ado

Hola, quiero crear una tabla con la unión de dos tablas. Ejemplifico:

Tabla Temporal
cantidad códigonum
1 002
5 003

Tabla Articulo
codigonum articulo marca ubicacion
001 AAAA BBBB 6
002 CCCC DDDD 10
003 EEEE FFFF 8

Tabla Pedido (Tabla resultante)

cantidad codigonum articulo marca ubicacion
1 002 CCCC DDDD 10
5 003 EEEE FFFF 8

Utilizo tablas .dbf con ADO, he probado con:

Código SQL [-]
SELECT T.CANTIDAD, A.ARTICULO, A.MARCA, T.CODIGONUM, A.UBICACION FROM TEMPORAL T INNER JOIN ARTICULO A ON (T.CODIGONUM=A.CODIGONUM)

pero no funciona, he revisado el foro y no encontré ninguna pregunta o respuesta a mi inquietud.

Gracias

Última edición por aromigaret fecha: 06-11-2015 a las 16:48:05.
Responder Con Cita
  #8  
Antiguo 06-11-2015
aromigaret aromigaret is offline
Miembro
 
Registrado: jun 2011
Posts: 68
Poder: 13
aromigaret Va por buen camino
Ya lo resolví lo dejo por si alguien tiene la misma inquietud

Código SQL [-]
INSERT INTO ORDENADA (CANTIDAD,ARTICULO,MARCA,CODIGONUM,UBICACION)  
SELECT T.CANTIDAD, A.ARTICULO, A.MARCA, T.CODIGONUM, A.UBICACION 
FROM TEMPORAL T 
INNER JOIN ARTICULO A ON (T.CODIGONUM=A.CODIGONUM)
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
Pasar datos de una tabla a un memo Cosgaya Conexión con bases de datos 24 03-04-2012 18:38:34
Pasar datos de una Query a una tabla Vanis SQL 3 09-01-2007 02:29:41
pasar datos de una tabla a otra perillan Conexión con bases de datos 5 19-09-2005 20:50:48
pasar datos de tabla a tabla? danytorres Conexión con bases de datos 6 15-06-2004 18:41:33
Pasar datos de un Adoquery a un ListBox1 danytorres Varios 6 09-05-2003 02:16:37


La franja horaria es GMT +2. Ahora son las 04:04:46.


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