Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

 
 
Herramientas Buscar en Tema Desplegado
  #17  
Antiguo 10-10-2007
Avatar de Gabo
[Gabo] Gabo is offline
Miembro Premium
 
Registrado: mar 2007
Ubicación: Murcia (España)
Posts: 684
Poder: 20
Gabo Va por buen camino
Cita:
Empezado por Lepe Ver Mensaje
Es que la función de agrupación funciona así y punto.... no hay más vueltas. Si incluyes una función Sum, avg,etc, debes poner todos los demás campos en el group by
Ese era un punto en el que tenía dudas. No sabía si de alguna manera se podían pedir datos sin agruparlos. Gracias.

Cita:
Empezado por Lepe Ver Mensaje
Si por un lado necesitas sumas y además otros campos, realiza 2 consultas, una con el Sum y la otra con los datos que necesitas.
Lamentablemente Interbase (al menos la versión 6) no me permite hacer consultas a consultas, es decir:

Código SQL [-]
Select xyz from (Select xyz from xyz)

Ya que con eso si lo podría lograr.

Cita:
Empezado por Lepe Ver Mensaje
En casos complejos, se puede usar un Procedimiento almacenado (si tu SGBBDD lo permite).

Edito: acabo de ver que usas Interbase, aquí va un ejemplo de un SP de selección:

Código SQL [-]
Create procedure Dame_gente()
returns
( ELpersonal_nombre varchar(30),
ELpersonal_codigo integer,
ELdemanda_personal numeric(10,2))
as
begin
for select personal_codigo, sum(demanda_personal)
from demanda_personal
group by personal_codigo
into :ELpersonal_codigo, :ELdemanda_personal do
begin
/* este es el truco, suponemos que no nos dejaba incluir el nombre porque al usar
varias tablas lo debíamos de meter en el Group by y no nos daba los resultados
que esperábamos. Pues lo hacemos en dos partes:
- Primero hacemos un select con las sumas
- Después buscamos en las demás tablas los datos para completar el registro que queremos devolver
con todos los datos juntos
*/
select personal_nombre
from personal
where codigo_personal = :ELpersonal_codigo
into :Elpersonal_nombre;
suspend; //devolvemos todos los parametros que han sido asignados
end;
end;

Forma de uso:



Código Delphi [-]
qry1.sql.text := 'select * from Dame_gente';
qry1.Open;

Como ves en el ejemplo, puedes hacer lo que te apetezca, realmente lo que se hace es construir un registro a mano, como si fuera un puzzle, añadiendo los valores que nos apetezca.


Saludos
[] Reconozco que los procedimiento almacenados no son mi fuerte[/]
Pero veo que ahí está la solución al problema, asi que...

Lamentablemente hoy no estoy en la oficina, pero mañana, en cuanto llegué, probaré eso y les contaré...

Gracias por la ayuda!!!!
__________________
Saludos,
Gabo

A menos que se indique lo contrario, el código estará hecho en C++Builder.

Última edición por Gabo fecha: 10-10-2007 a las 12:03:42.
Responder Con Cita
 



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
agregar componentes Lucass Varios 10 28-07-2007 02:27:52
problemas agregar una pc con S.O win 98 a una red pollo_c Internet 1 27-02-2007 19:02:28
Como agregar a una lista los nombres de los campos de una consulta. Luis Conexión con bases de datos 2 11-11-2004 21:55:56
Agregar items a un comboBox desde una consulta de MYSQL Juan Carlos Conexión con bases de datos 3 29-05-2004 22:49:09
Quiero saber como agregar una consulta de SQL a un combobox Julio César Varios 4 15-01-2004 13:47:44


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


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi