Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-05-2008
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
todos los campos y mas

Hola, necesito de sus conocimientos.

Necesito hacer una consulta a una tabla de donde necesito saber de todos los campos, ademas de realizar una suma con uno de ellos.

Código SQL [-]
select *, sum(monto) from tabla

eso es lo que necesitaria, pero eso no va bien, la otra idea es escribir todos los campos, pero estos son mas de 50, y son muchos

alguna idea de como hacer esto mas rapido.

Saludos y gracias
Responder Con Cita
  #2  
Antiguo 16-05-2008
hecospina hecospina is offline
Miembro
 
Registrado: oct 2007
Posts: 202
Poder: 17
hecospina Va por buen camino
Realmente creo que la unica solucion es digitar cada uno de los campos
Con
Código SQL [-]
Select *,sum(monto) from tabla

estas llamando todos los campos incluyendo el "monto", en este caso
sum(monto) seria el mismo valor que se encuentra en "monto"
No tendria sentido hacerlo
Si necesitas ahorrar tiempo usa el query builder que trae algunas herramientas para manejo de base de datos
Suerte
Responder Con Cita
  #3  
Antiguo 16-05-2008
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
Hola mjjj,

Creo que debes replantearte lo que quieres hacer porque el problema no radica en la forma en que listes los campos. Una función como sum() se aplica sobre grupos de registros por lo que su valor no puede estar aparejado con cada uno de los registros del grupo.

Digamos que, en este caso, el grupo son todos los registros. Una consulta como

Código SQL [-]
select sum(monto) from tabla

regresa un sólo registro, mientras que una consulta

Código SQL [-]
select * from tabla

regresa múltiples registros.

Luego entonces, no son compatibles. ¿Qué tendría que aparecer al lado de cada registro? ¿La suma total? No puede ser, pues el motor debe recorrer todos los registros para hacer tal cálculo.

Vamos, que lo que tú planteas es,

Código:
tabla

+---------+-------+
| cliente | monto |
+---------+-------+
| juan    |  100  |
+---------+-------+
| luisa   |   75  |
+---------+-------+
| laura   |  250  |
+---------+-------+
| pepe    |   30  |
+---------+-------+
Código:
Resultado

+---------+-------+-------+
| cliente | monto | total |
+---------+-------+-------+
| juan    |  100  |  455  |
+---------+-------+-------+
| luisa   |   75  |  455  |
+---------+-------+-------+
| laura   |   250 |  455  |
+---------+-------+-------+
| pepe    |    30 |  455  |
+---------+-------+-------+
Se ve raro ¿no?

// Saludos

Última edición por roman fecha: 16-05-2008 a las 19:03:15.
Responder Con Cita
  #4  
Antiguo 07-06-2008
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Cita:
Empezado por mjjj Ver Mensaje

Necesito hacer una consulta a una tabla de donde necesito saber de todos los campos, ademas de realizar una suma con uno de ellos.

Select *, sum(monto) from tabla
Eso es super sencillo de hacer. Prueba con esto:

Código SQL [-]
select Tabla.*, sum(monto) from tabla


El chiste es utilizar el nombre de la tabla como alias. Si solo tienes una tabla funciona, si tienes más, lo ideal es hacer uso de alias explícitos.

SAludos
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #5  
Antiguo 07-06-2008
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
Amigo poliburro, ¿has probado esto que dices? Yo pongo una consulta como la que escribes, en MySQL y me lanza el consabido error:

Cita:
Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause
Tendría necesariamente que agrupar por algún campo. Pero si lista todos los campos, entonces tendría que agrupar por todos los campos, con lo cual, realmente no estaríamos agrupando nada.

// Saludos
Responder Con Cita
  #6  
Antiguo 07-06-2008
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Cita:
Empezado por roman Ver Mensaje
Amigo poliburro, ¿has probado esto que dices? Yo pongo una consulta como la que escribes, en MySQL y me lanza el consabido error:

Tienes razon me apresuré a responder.

:P saludos
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
Respuesta



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
No jala todos los campos en query Nomad Conexión con bases de datos 34 04-10-2007 13:34:30
Seleccionar todos los campos de un TStringGrid odomalo OOP 1 07-03-2007 20:25:22
Como mostrar todos los campos salvanano Impresión 4 09-05-2005 01:20:55
Hola a todos Gracias ( Campos Blob) Abel Garcia Firebird e Interbase 0 11-11-2004 22:18:30
Se me han borrado todos los campos!! DarkByte Tablas planas 3 07-10-2003 20:53:22


La franja horaria es GMT +2. Ahora son las 18:06:36.


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