FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Max sobre resultado de un Sum, agrupar por fraccion de fecha.
HOLA,
Quisiera saber si alguien sabria como hacer un Max() sobre el resultado de un Sum(). Y si a alguien se le ocurre como agrupar por mes a partir de una fecha entera sin usar el report Exctract(month from fecha). Si teneis alguna idea por favor hacedmelo saber llevo 1 semana sin poder resolver una "miserable" busquedad sql xDDD GRACIAS! saludos a todos. |
#2
|
|||
|
|||
¿Cual es el motor de base de datos que usas?.
En firebird, por ejemplo, funcionaría algo así en el primer caso:
en el segundo caso:
En algunos motores (bde por ejemplo) no funcionaría, ya que no permite expresiones en el group by. |
#3
|
|||
|
|||
Hola basti,
Creo que es un paradox puede ser? al menos eso pone en el bde administrador de windows. Y por lo que creo no me deja ni poner condiciones en el group by ni tampoco una select en el from -_-' mira te dejo pegado el anuncio anterior que puse donde detallo mucho mas el problema y como lo suelo resolver: "SELECT PED.VENDEDOR, PER.NOMBRE, PEC.PRODUCTO, PRO.NOMBRE, SUM(PEC.CANTIDAD) AS C_ENERO FROM "BFACTU2:PED_EMI.DB" AS PED, "BFACTU2:PED_CONC.DB" AS PEC, "BFICHEROS:PERSONAS.DB" AS PER, "BFICHEROS:PRODUCTO.DB" AS PRO WHERE PRO.CODIGO = PEC.PRODUCTO AND (PRO.PRESENTE = 'S' OR PRO.PRESENTE ='s') AND (PEC.PRESENTE = 'S' OR PEC.PRESENTE ='s') AND PED.N_PED = PEC.N_PED AND PER.ID_PER=PED.VENDEDOR AND EXTRACT (MONTH FROM PED.FECHA) = 1 GROUP BY PED.VENDEDOR, PER.NOMBRE, PEC.PRODUCTO, PRO.NOMBRE que basicamente de momento me suma la cantidad de producto por producto y comercial de pedidos del mes de enero. quisiera: 1-sacar solamente la cantidad maxima de las sumas por cada comercial. es decir si cada comercial tiene 10 productos que unicamente me saque el producto y la cantidad sumada de este producto. 2-saber si hay alguna manera de poder agrupar por extract(month from fecha) para poder asi agrupar por fecha. cuando tengo que agrupar por fracciones de fecha(año, mes) lo que suelo hacer es un listado como en este caso sin el sum con el extract(month from fecha) as mes de campo+idem as año, para poder luego en el report agrupar por mes y asi sumar las cantidades dentro de este grupo. Lo que me permite hacer estructuras de sumas de campo por año-comerciales-mes. Pero en este caso al tener que sacar el max de las sum no tengo ni idea de como hacerlo, ya que no se me ocure como hacer ambas cosas con la sql ni con el report. A malas para sacar los resultados de cada mes (es decir sin agrupar por extract) puedo hacer 12 consultas de estas para cada mes y usar unions... pero 1 no me soluciona el problema del max de sum y 2... un dia me dijeron que un buen informatico debia ser vago escribiendo y agil d emente xDD" en fin, espero que te ubiques un pokito mas -_-' pq yo estoy bastante perdido xDDD En resumen si solo tuviese una de las 2 condiciones podria: -o bien sacar el listado con el sum (quitando condicion del extract) y luego solo sacar el max, pero entonces no me resolveria el tema de la agrupacion por fechas (ya que no puedo agrupar por una condicion) -o bien sacar este listado sin sumar con lo cual sacaria un campo extract de la fecha y agruparia a posteriori en el report por el campo "extraido" para sumar, pero claro entonces no me resolveria el problema de solo sacar el max. Última edición por NSL94 fecha: 09-07-2007 a las 10:44:16. |
#4
|
|||
|
|||
Acabo de probar las opciones que te di con BDE y Paradox para asegurarme de que, como sospechaba, no funciona.
Según el tipo de reportes que uses, algunos te permiten agrupar por el mes de la fecha y hacer las sumas. Como última opción podrías crear una tabla temporal con los datos que te hacen falta para el informe. |
#5
|
|||
|
|||
Hola de nuevo Basti...
Erf el entorno en el que me hacen programar es del año de la quica xDD amos mucho es pedirle al report que agrupe por fecha sin que se cuelguen los grupos... sisi tengo que resetearlos a cada consulta (casi). no hagas preguntas, los que diseñaron esto son unos "cracks" -_-¡ En fin, me interesa mucho esto de crear la tabla temporal, podrias mandarme un link a algun tutorial, o algo parecido para investigarlo, esque nunca lo he echo, y no tengo ni idea de como se podria hacer. Aunque por lo que me dicen con paradox no voy a poder hacer esta consulta -_-¡ y si... el "crack" de mi jefe es de estos que es tan "crack" que se permite pegarle a la mesa vociferando xDDD y no es capaz de aceptar que su infraestructura esta MUY limitada... pero weno ^^ en fin muchas gracias por tu tiempo Basti! |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Agrupar por la fecha de un campo datetime | Javi2 | SQL | 4 | 21-08-2010 02:33:43 |
MAX(SUM(campo)) ??? y agrupar por un extract(month from fecha) | NSL94 | SQL | 0 | 05-07-2007 15:29:21 |
Agrupar campos en ClientDataSet y recorrer el resultado | David | Conexión con bases de datos | 3 | 20-06-2007 11:13:11 |
Como simplificar y obtener el resultado en una fracción | manuelalejandro | Varios | 3 | 10-12-2006 02:51:04 |
Sobre cierto resultado de la función SHGetSpecialFolderPath | dec | API de Windows | 3 | 01-06-2005 06:59:01 |
|