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 26-01-2007
Tolón Tolón is offline
Miembro
 
Registrado: ene 2007
Posts: 16
Poder: 0
Tolón Va por buen camino
Smile Problema con Consulta

Antes que nada Quiero Presentarme ante todos los miembros del Club.
Mi Nombre es Othón Casasa Richardi, y soy originario de Veracruz, Mexico.
e leido varios temas de este foro y me han ayudado a solucionar algunos probelmas relacionados con desarrollar en delphi.

Tengo un problema actualmente, parece que es sencillo pero por alguna razón no me sale

Tengo un query que no me suma el total de lo realizado en X determinada semana de trabajo

el código del query es el siguiente:
Código SQL [-]
SELECT SUM(semanan.total), Semanan.Sem, Semanan.id, Semanan.Cve_par, Semanan.Ppto, Semanan.Concepto, Semanan.Unidad,
 Semanan.Cantidad, Semanan.Precio, Semanan.Total, Semanan.Proveedor, Semanan.Avanze, Semanan.Creado, Semanan.Actualizado, 
Semanan.Subtotal, Semanan.documento, Semanan.Cve_proy, Semanan.Npartida, Semanan.Pagado
 
FROM "currentProject.db" Currentproject
INNER JOIN "SemanaN.DB" Semanan
ON (Semanan.Cve_proy = Currentproject.Cve_proy) 
 
where (sem =:Nsemana)
 
group by semanan.sem,Semanan.id, Semanan.Cve_par, Semanan.Ppto, Semanan.Concepto, Semanan.Unidad, Semanan.Cantidad, 
Semanan.Precio, Semanan.Total, Semanan.Proveedor, Semanan.Avanze, Semanan.Creado, Semanan.Actualizado, Semanan.Subtotal, 
Semanan.documento, Semanan.Cve_proy, Semanan.Npartida, Semanan.Pagado
Cabe mencionar que en el campo de la suma, me pone el total de cada renglón y yo lo que quiero en ese campo es la suma de los totales de todos los renglones.

Muchas Gracias de antemano y me despido enviándoles un cordial saludos desde Veracruz.
[/size]

Última edición por vtdeleon fecha: 27-01-2007 a las 01:26:34.
Responder Con Cita
  #2  
Antiguo 27-01-2007
[basti] basti is offline
Miembro Premium
 
Registrado: ago 2004
Posts: 388
Poder: 20
basti Va por buen camino
El problema está en todos esos Group By que tienes. Para ver la suma total sólo te haría falta lo siguiente:
Código SQL [-]
SELECT SUM(semanan.total) from "currentProjet.db" CurrentProject
INNER JOIN "SemanaN.DB" Semanan
ON (Semanan.Cve_proy = Currentproject.Cve_proy) 
where (sem =:Nsemana)

Todos los campos que pongas en el group by irán añadiendo grupos, por ejemplo, si pones semanan.sem en el group by, lo que te hará la consulta es mostrarte las sumas de cada semana, no la suma total de todo.
Responder Con Cita
  #3  
Antiguo 29-01-2007
Tolón Tolón is offline
Miembro
 
Registrado: ene 2007
Posts: 16
Poder: 0
Tolón Va por buen camino
Hola Basti,

Gracias por tu respuesta, lo puse como lo propones pero obtengo un mensaje de error del DBE Engine donde se especifica que en caso de existir campos añadidos en el query (en este caso es el campo suma) debe existir el group by.
Si pongo solamente en el group by semanan.sem me pone el error que si existe un group by cada campo simple debe estar en el group by. por esto es la razón que tengo todos esos campos en el group by.

Gracias y saludos
Responder Con Cita
  #4  
Antiguo 29-01-2007
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Galicia
Posts: 595
Poder: 20
Ivanzinho Va por buen camino
El problema que tienes es que no se puede querer todo en una consulta, me explico.

El group by lo que hace es agrupar los registros, en los que coincidan todos los campos que se indican en el group by, en un solo registro. Lo que veo que haces aquí es agrupar por precio, proveedor, etc..., campos que son distintos dentro de los registros de la misma semana, por lo que si quieres el total de la semana entonces no los necesitas y por tanto la consulta que te indica basti sin group by y filtrando por semana es correcta (lo que tienes que hacer es sacar solo el total, filtrar por semana y eliminar el group by).
__________________
Si no lees esto no vivirás tranquilo
Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao)
Responder Con Cita
  #5  
Antiguo 29-01-2007
[basti] basti is offline
Miembro Premium
 
Registrado: ago 2004
Posts: 388
Poder: 20
basti Va por buen camino
Como bien dice Ivanzinho, no debes querer una consulta que te haga todo, en este caso hay una solución:
Código SQL [-]
SELECT semanan.sem,  campo1, campo2... 
 (select SUM(semanan.total) from semanan) as sumaTotal
from "currentProjet.db" CurrentProject
INNER JOIN "SemanaN.DB" Semanan
ON (Semanan.Cve_proy = Currentproject.Cve_proy) 
where (sem =:Nsemana)
group by Semanan.Sem, campo1, campo2...

pero si la cantidad de registros es muy grande la consulta se volverá muy lenta, ya que hará la suma completa por cada registro de la tabla, así que tienes que evaluar si merece la pena usar este sistema.
Responder Con Cita
  #6  
Antiguo 29-01-2007
Tolón Tolón is offline
Miembro
 
Registrado: ene 2007
Posts: 16
Poder: 0
Tolón Va por buen camino
Gracias por los consejos.
Ya olvidé ese método y le dí la vuelta al problema ...

Hasta pronto !
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
problema con consulta sql kejos MS SQL Server 1 30-06-2006 18:36:50
problema con consulta sql Cosgaya SQL 4 16-01-2006 18:09:17
Problema con consulta de SQL Durbed Firebird e Interbase 2 30-09-2004 21:41:39
problema con consulta cval Firebird e Interbase 3 30-04-2004 06:33:50
problema con consulta. jsanchez SQL 2 20-05-2003 19:35:55


La franja horaria es GMT +2. Ahora son las 04:01: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