none
Resultado de um select para montar outro select RRS feed

  • Pergunta

  • Estou com uma dúvida, talvez seja besta, mas não consigo pensar na solução. 

    Tenho um select que me retorna um número inteiro, no caso é um select que me retorna a quantidade de registros na última hora: 

    select top 1 count([Watts_W]) as qtd from dbo.Inversor_TRIO60 
    where Equipament = 34
    GROUP BY CONVERT(CHAR(13), Data_Hora, 120)
    order by CONVERT(CHAR(13), Data_Hora, 120) desc

    Preciso usar o resultado desse select para fazer uma conta no outro select: 

    select CONVERT(CHAR(13), Data_Hora, 120)  + ':00:00' as data,
    (((sum([Watts_W]) / RESULTADO_DO_SELECT_ANTERIOR ) as kwh 
    from dbo.Inversor_TRIO60 
    where dbo.Inversor_TRIO60.Equipament = 34 and DATEPART(HOUR, Data_Hora) BETWEEN 04 and 18
    GROUP BY CONVERT(CHAR(13), Data_Hora, 120)
    order by CONVERT(CHAR(13), Data_Hora, 120) desc

    Quando tento colocar o select ali para fazer a conta da erro e o sql não aceita.

    Alguem tem uma sugestao?

    terça-feira, 22 de janeiro de 2019 21:13

Respostas

  • Boa noite,

    Experimente fazer uns testes dessa forma:

    with
        CTE_Count as
        (
            select top 1 
                count([Watts_W]) as qtd 
            from dbo.Inversor_TRIO60 
            where Equipament = 34
            GROUP BY CONVERT(CHAR(13), Data_Hora, 120)
            order by CONVERT(CHAR(13), Data_Hora, 120) desc
        ),
    
        CTE_Sum as
        (
            select 
                CONVERT(CHAR(13), Data_Hora, 120) as data,
                sum([Watts_W]) as soma 
            from dbo.Inversor_TRIO60 
            where dbo.Inversor_TRIO60.Equipament = 34 and DATEPART(HOUR, Data_Hora) BETWEEN 04 and 18
            GROUP BY CONVERT(CHAR(13), Data_Hora, 120)
        )
    
    select
        s.data + ':00:00' as data,
        s.soma / c.qtd as kwh 
    from CTE_Sum as s
    cross join CTE_Count as c
    order by data desc
    

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    terça-feira, 22 de janeiro de 2019 22:20