none
Período de data RRS feed

  • Pergunta

  • Amigos tarde!

    a SQL abaixo me retorna informaçoes que preciso, porem eu nao consigo colocar filtro maior de data 

    no declare esta somente a data fixa preciso colocar >= e <= nas datas. alguem poderia me ajudar?

    declare @DATA_FIM DATE = '2019-03-31'
    declare @CONTA INT = '0077'
    declare @COLIGADA_CONTA INT = '1'


    SELECT 
     case
    when convert(date, @DATA_FIM , 103) <= '2014-11-01'
    then SUM(TAB1.VALFIM)
    WHEN convert(date, @DATA_FIM , 103) > convert(date, '29/01/2019' , 103) 
    THEN SUM(tab2.valfim)

    ELSE SUM(tab3.valor)


    end as valor,
    fcxa.CODCXA,
    @DATA_FIM
    from fcxa


    inner join (select case
    when fcxa.DATABASECXA < convert(date, @DATA_FIM , 103)
    then case
    when Y_fcxa.SALDODATABASE is null 
    then isnull(FCXA.SALDODATABASE, 0)
    else Y_fcxa.SALDODATABASE
    end
    else 0
    end as VALFIM,
    FCXA.CODCXA
    from FCXA 
    left join Y_FCXA
    ON(FCXA.CODCOLIGADA = Y_fcxa.codcoligada
    and FCXA.CODCXA = Y_fcxa.codcxa)) TAB1
    ON (TAB1.CODCXA = FCXA.CODCXA)

    INNER JOIN (SELECT SUM(AUX3.VALOR) AS VALFIM,AUX3.CODCXA,AUX3.CODCOLIGADA
    FROM(
    select fxcx.valor,
    FXCX.CODCXA,
    fxcx.codcoligada
    from FXCX (nolock)
    where FXCX.DATACANCELAMENTO is null
    and fxcx.COMPENSADO = 1
    and fxcx.TIPO <> '10'
    and FXCX.DATACOMPENSACAO > convert(date, '29/01/2019' , 103)
    and FXCX.DATACOMPENSACAO <= convert(date, @DATA_FIM , 103)
    UNION ALL
    /*SOMA SALDO ANTES DO DIA 29/01/2018*/
    select fxcx.valor,
    FXCX.CODCXA,
    fxcx.codcoligada
    from FXCX (nolock)
    where fxcx.DATAESTORNO is null
    and FXCX.DATACANCELAMENTO is null
    and fxcx.COMPENSADO = 1
    and fxcx.TIPO <> '10'
    and FXCX.DATACOMPENSACAO <= convert(date, '29/01/2019' , 103)
    and FXCX.DATACOMPENSACAO >= '2014-11-01'

    UNION ALL 
    select case
    when fcxa.DATABASECXA < convert(date, @DATA_FIM , 103)
    then case
    when Y_fcxa.SALDODATABASE is null 
    then isnull(FCXA.SALDODATABASE, 0)
    else Y_fcxa.SALDODATABASE
    end
    else 0
    end as VALOR,
    FCXA.CODCXA,
    FCXA.codcoligada
    from FCXA 
    left join Y_FCXA
    ON(FCXA.CODCOLIGADA = Y_fcxa.codcoligada
    and FCXA.CODCXA = Y_fcxa.codcxa))AUX3
    GROUP BY AUX3.CODCXA,AUX3.CODCOLIGADA) TAB2
    ON (TAB2.CODCXA = FCXA.CODCXA)


    INNER JOIN (select SUM(aux4.valor) as valor,
    aux4.codcxa
    from (

    select FXCX.VALOR,
    FXCX.CODCXA
    from FXCX (nolock)
    where fxcx.DATAESTORNO is null
    and FXCX.DATACANCELAMENTO is null
    and fxcx.COMPENSADO = 1
    and fxcx.TIPO <> '10'
    and FXCX.DATACOMPENSACAO <= convert(date, @DATA_FIM , 103)
    and FXCX.DATACOMPENSACAO >= '2014-11-01'
    UNION ALL
    select case
    when fcxa.DATABASECXA < convert(date, @DATA_FIM , 103)
    then case
    when Y_fcxa.SALDODATABASE is null 
    then isnull(FCXA.SALDODATABASE, 0)
    else Y_fcxa.SALDODATABASE
    end
    else 0
    end as VALOR,
    FCXA.CODCXA
    from FCXA 
    left join Y_FCXA
    ON(FCXA.CODCOLIGADA = Y_fcxa.codcoligada
    and FCXA.CODCXA = Y_fcxa.codcxa)) aux4
    GROUP BY aux4.codcxa) TAB3

    ON (TAB3.CODCXA = FCXA.CODCXA)


    where fcxa.codcxa is not null

    group by fcxa.CODCXA

    ORDER BY fcxa.CODCXA

    terça-feira, 14 de maio de 2019 16:26

Respostas

Todas as Respostas

  • Oi ronnie, não entendi sua pergunta!

    Você quer calcular a data de início e fim baseado na variável de data que você tem?


    []'s | Rodrigo Ribeiro Gomes | MCTS/MCITP Dev/DBA

    terça-feira, 14 de maio de 2019 16:42
  • Isso mesmo calcular baseado na variável
    terça-feira, 14 de maio de 2019 17:03
  • declare @DATA_FIM DATE = '20190331'

    declare @DataIni datetime = @DATA_FIM
    declare @DatAFim datetime = dateadd(day,1,@DATA_FIM)

    As variáveis acima geram uma data (Ini) as 00h00, e uma data no próximo dia à meia noite!.

    Aí você pode usar no filtro, ao invés de usar o sinal de "<=", usar "<".

    select * from tabela where data > @DataIni and data < @DataFim

    Seria isso?


    []'s | Rodrigo Ribeiro Gomes | MCTS/MCITP Dev/DBA

    terça-feira, 14 de maio de 2019 17:13
  • Deleted
    terça-feira, 14 de maio de 2019 17:17