none
consulta sql comparativa por fechas/años RRS feed

  • Pregunta

  • tengo una tabla sql donde quiero hacer una comparativa por años por ejemplo enero 2016 y enero 2015 pero no tiene porque ser un mes natural

    el resultado que quiero es por columnas algo asi:

    ndias   origen             unidades2016         unidades2015

    1           sitio1                 290                           189

    con esta sentencia me salen 2016 pero no se como sacar 2015 a continuacion

    select ndias,origen,sum(unidades) as sumaUds, sum(precio) as sumaPrecio from Estancias 

    where estancias.fecha>='01/01/2016' and  estancias.fecha<='31/01/2016'

    group by estancias.ndias, estancias.Origen


    Aran

    viernes, 27 de enero de 2017 8:29

Respuestas

  • Este sería el PseudoCodigo

    Declare @desde date, @hasta date

    select @desde='20160101',@hasta='20161231'

    select a.*, b.unidadesAA from

     (select ndias,origen,sum(unidades) as sumaUds, sum(precio) as sumaPrecio from Estancias 

    where estancias.fecha>=@desde and  estancias.fecha<='@hasta) a

    full join

    (

    select ndias,origen,sum(unidades) as UnidadesAA, sum(precio) as sumaPrecio from Estancias 

    where estancias.fecha>=dateadd(dd,-365,@desde) and  estancias.fecha<=dateadd(dd,-365,@desde)) b

    on a.ndias=b.ndias and a.origen=b.origen


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    • Propuesto como respuesta Joyce_ACModerator viernes, 27 de enero de 2017 15:52
    • Marcado como respuesta aticnet martes, 31 de enero de 2017 10:32
    viernes, 27 de enero de 2017 8:33
    Moderador

Todas las respuestas

  • Este sería el PseudoCodigo

    Declare @desde date, @hasta date

    select @desde='20160101',@hasta='20161231'

    select a.*, b.unidadesAA from

     (select ndias,origen,sum(unidades) as sumaUds, sum(precio) as sumaPrecio from Estancias 

    where estancias.fecha>=@desde and  estancias.fecha<='@hasta) a

    full join

    (

    select ndias,origen,sum(unidades) as UnidadesAA, sum(precio) as sumaPrecio from Estancias 

    where estancias.fecha>=dateadd(dd,-365,@desde) and  estancias.fecha<=dateadd(dd,-365,@desde)) b

    on a.ndias=b.ndias and a.origen=b.origen


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    • Propuesto como respuesta Joyce_ACModerator viernes, 27 de enero de 2017 15:52
    • Marcado como respuesta aticnet martes, 31 de enero de 2017 10:32
    viernes, 27 de enero de 2017 8:33
    Moderador
  • perfecto muchas gracias

    Aran

    martes, 31 de enero de 2017 10:32