SQL - Agrupaciones por fechas raras

 
Vista:

Agrupaciones por fechas raras

Publicado por Nolo (4 intervenciones) el 19/06/2006 23:24:04
Buenas,

Necesito hacer agrupaciones un tanto complicadas, almenos yo me lo planteo complicadas....

Resulta que tengo que seleccionar registros por fechas, eso facil no? ;)

El problema es que a partir de estos registros el usuario puede pedirme el minimo valor por quincenas, meses, trimestres, semestres y años. El que dice minimo dice maximo media o contador....

Alguien ha tenido que trabajar con estas cositas?Espero que si y me pueda echar un cable....

Un saludo y gracias por todo....
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Agrupaciones por fechas raras

Publicado por Isaías (5072 intervenciones) el 20/06/2006 00:35:29
¿Cual es tu motor de base de datos?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Agrupaciones por fechas raras

Publicado por Nolo (4 intervenciones) el 20/06/2006 00:40:04
Sobre Sql-server pero a poder ser preferiria que fuese una sentencia sql standard, aunque si es solo para sql-server almenos pues ya me sirve....

Gracias,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Agrupaciones por fechas raras

Publicado por Isaías (5072 intervenciones) el 20/06/2006 01:29:27
Lo que pasa que en SQL Standar, no existen muchas de las funciones para el manejo de fechas, como si hay en SQL SERVER.

Para poder sacar, DIAS, SEMANAS, QUINCENAS, TRIMESTRES, MESES, AÑOS, tiene la funcion DATEPART(XX, FECHA)

Solo tendrias que combinar el SUM que hagas de tus importes con el GROUP BY y MIN O MAX de tu suma.

SELECT MAX(SUM(IMPORTE)), DATEPART(mm, GETDATE()) FROM MyTabla GROUP BY DATEPART(mm, GETDATE())

Esto te dara el MAXIMO de la SUMA de tus importes AGRUPADO por Mes, aunque habria que agregar en el WHERE, tal vez el AÑO.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Agrupaciones por fechas raras

Publicado por Nolo (4 intervenciones) el 20/06/2006 02:23:29
Buenas,

La verdad es que con Sql-Server por ahora poco me he peleado...yo vengo del Oracle....

Y para hacerlo con 15 dias o con 3 meses como sería?

La verdad es que estas funciones son la bomba, no crees?

Un saludo y gracias por todo!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Agrupaciones por fechas raras

Publicado por Isaías (5072 intervenciones) el 20/06/2006 17:58:36
-- 15 DIAS
SELECT
SUM(CASE WHEN DATEPART(dd, MyFecha) BETWEEN 1 AND 15 THEN MyImporte END) AS 1-15
SUM(CASE WHEN DATEPART(dd, MyFecha) BETWEEN 16 AND 31 THEN MyImporte END) AS 1-31
FROM MyTabla
WHERE..........................

-- 3 Meses
SELECT DATEPART(qq,MyFecha), MAX(SUM(Importe))
FROM MyTabla
WHERE...........
GROUP BY DATEPART(qq,MyFecha),
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Agrupaciones por fechas raras

Publicado por Zoumaho (1 intervención) el 03/02/2016 23:14:09
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
CREATE TABLE #FECHAS (
    fecha datetime,
    dia int,
    semana int,
    mes int,
    trimestre int,
    semestre int,
    quincena int,
    bimensual int,
 )
 DECLARE @fecha datetime
 SET @fecha = '2015-12-26'
 WHILE @fecha<'2017-01-01'
 BEGIN
 
    INSERT INTO #FECHAS
        (fecha ,dia ,semana ,mes
        ,trimestre ,semestre
        ,quincena ,bimensual)
    SELECT @fecha ,datepart(dd,@fecha) ,datepart(wk,@fecha) ,datepart(mm,@fecha)
          ,datepart(qq,@fecha) ,(datepart(mm,@fecha)-1)/6 + 1
          ,(datepart(wk,@fecha)-1)/2 + 1
          ,(datepart(mm,@fecha)-1)/2 + 1
 
    SET @fecha = dateadd(dd,1,@fecha)
 END
 
 SELECT *
 FROM #FECHAS
 
 DROP TABLE #FECHAS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar