none
Soma dos Resultados obtidos pelo 'As' RRS feed

  • Pergunta

  • Boa tarde,

    Gostaria de obter o total do 'As' do código abaixo;

    Ex. (S_Janeiro/17 + S_Fevereiro/17 + S_Marco/17 + S_Abril/17 + S_......)

    select
    a.ItemCode as [Código],
    a.ItemName as [Descrição],
    c.FirmName as [Fornecedor],
    d.ItmsGrpNam as [Grupo Itens],
    b.OnHand as [Estoque Atual],

    --Vendas por Mês
    (Select Sum(IsNull(M.OutQty,0)) From OINM as M where M.DocDate Between '2017-01-01' and '2017-01-31' and M.ItemCode = a.ItemCode) as 'S_Janeiro/17',
    (Select Sum(IsNull(M.OutQty,0)) From OINM as M where M.DocDate Between '2017-02-01' and '2017-02-28' and M.ItemCode = a.ItemCode) as 'S_Fevereiro/17',
    (Select Sum(IsNull(M.OutQty,0)) From OINM as M where M.DocDate Between '2017-03-01' and '2017-03-31' and M.ItemCode = a.ItemCode) as 'S_Marco/17',
    (Select Sum(IsNull(M.OutQty,0)) From OINM as M where M.DocDate Between '2017-04-01' and '2017-04-30' and M.ItemCode = a.ItemCode) as 'S_Abril/17',
    (Select Sum(IsNull(M.OutQty,0)) From OINM as M where M.DocDate Between '2017-05-01' and '2017-05-31' and M.ItemCode = a.ItemCode) as 'S_Maio/17',
    (Select Sum(IsNull(M.OutQty,0)) From OINM as M where M.DocDate Between '2017-06-01' and '2017-06-30' and M.ItemCode = a.ItemCode) as 'S_Junho/17',
    (Select Sum(IsNull(M.OutQty,0)) From OINM as M where M.DocDate Between '2017-07-01' and '2017-07-31' and M.ItemCode = a.ItemCode) as 'S_Julho/17',
    (Select Sum(IsNull(M.OutQty,0)) From OINM as M where M.DocDate Between '2017-08-01' and '2017-08-31' and M.ItemCode = a.ItemCode) as 'S_Agosto/17'

    --Saldo por Mês
    --(Select Sum(IsNull(M.InQty,0) - IsNull(M.OutQty,0)) From OINM as M where M.DocDate = '2017-01-31' and M.ItemCode = a.ItemCode) as 'Janeiro/2017',
    --(Select Sum(IsNull(M.InQty,0) - IsNull(M.OutQty,0)) From OINM as M where M.DocDate = '2017-02-28' and M.ItemCode = a.ItemCode) as 'Fevereiro/2017'

    from OITM a
    inner join OITW b
     on a.ItemCode = b.ItemCode
    inner join OMRC c
     on a.FirmCode = c.FirmCode
    inner join OITB d
     on a.ItmsGrpCod = d.ItmsGrpCod
      
    where a.validFor = 'Y'
    and a.SellItem = 'Y'
    and b.WhsCode = '01'

    Group by
    a.ItemCode, a.ItemName, b.OnHand, c.FirmName, d.ItmsGrpNam

    order by
    a.ItemCode

    segunda-feira, 4 de setembro de 2017 20:48

Respostas

  • Boa noite,

    Experimente dessa forma:

    select 
    a.ItemCode as [Código], 
    a.ItemName as [Descrição], 
    c.FirmName as [Fornecedor], 
    d.ItmsGrpNam as [Grupo Itens], 
    b.OnHand as [Estoque Atual],
    
    --Vendas por Mês
    IsNull(oa.'S_Janeiro/17', 0),
    IsNull(oa.'S_Fevereiro/17', 0),
    IsNull(oa.'S_Marco/17', 0),
    IsNull(oa.'S_Abril/17', 0),
    IsNull(oa.'S_Maio/17', 0),
    IsNull(oa.'S_Junho/17', 0),
    IsNull(oa.'S_Julho/17', 0),
    IsNull(oa.'S_Agosto/17' ,0),
    
    IsNull(oa.'S_Janeiro/17', 0) +
    IsNull(oa.'S_Fevereiro/17', 0) +
    IsNull(oa.'S_Marco/17', 0) +
    IsNull(oa.'S_Abril/17', 0) +
    IsNull(oa.'S_Maio/17', 0) +
    IsNull(oa.'S_Junho/17', 0) +
    IsNull(oa.'S_Julho/17', 0) +
    IsNull(oa.'S_Agosto/17' ,0) as Total
    
    from OITM a
    inner join OITW b
     on a.ItemCode = b.ItemCode
    inner join OMRC c
     on a.FirmCode = c.FirmCode
    inner join OITB d
     on a.ItmsGrpCod = d.ItmsGrpCod
    
    outer apply
    (
        Select 
            Sum(case when M.DocDate Between '2017-01-01' and '2017-01-31' then M.OutQty else 0 end) as 'S_Janeiro/17',
            Sum(case when M.DocDate Between '2017-02-01' and '2017-02-28' then M.OutQty else 0 end) as 'S_Fevereiro/17',
            Sum(case when M.DocDate Between '2017-03-01' and '2017-03-31' then M.OutQty else 0 end) as 'S_Marco/17',
            Sum(case when M.DocDate Between '2017-04-01' and '2017-04-30' then M.OutQty else 0 end) as 'S_Abril/17',
            Sum(case when M.DocDate Between '2017-05-01' and '2017-05-31' then M.OutQty else 0 end) as 'S_Maio/17',
            Sum(case when M.DocDate Between '2017-06-01' and '2017-06-30' then M.OutQty else 0 end) as 'S_Junho/17',
            Sum(case when M.DocDate Between '2017-07-01' and '2017-07-31' then M.OutQty else 0 end) as 'S_Julho/17',
            Sum(case when M.DocDate Between '2017-08-01' and '2017-08-31' then M.OutQty else 0 end) as 'S_Agosto/17'
        From OINM as M 
        where
            M.ItemCode = a.ItemCode
    ) as oa
      
    where a.validFor = 'Y'
    and a.SellItem = 'Y'
    and b.WhsCode = '01'
    
    Group by
    a.ItemCode, a.ItemName, b.OnHand, c.FirmName, d.ItmsGrpNam
    
    order by
    a.ItemCode

    Espero que ajude


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

    segunda-feira, 4 de setembro de 2017 21:40
  • Deleted
    terça-feira, 5 de setembro de 2017 12:00

Todas as Respostas

  • Boa noite,

    Experimente dessa forma:

    select 
    a.ItemCode as [Código], 
    a.ItemName as [Descrição], 
    c.FirmName as [Fornecedor], 
    d.ItmsGrpNam as [Grupo Itens], 
    b.OnHand as [Estoque Atual],
    
    --Vendas por Mês
    IsNull(oa.'S_Janeiro/17', 0),
    IsNull(oa.'S_Fevereiro/17', 0),
    IsNull(oa.'S_Marco/17', 0),
    IsNull(oa.'S_Abril/17', 0),
    IsNull(oa.'S_Maio/17', 0),
    IsNull(oa.'S_Junho/17', 0),
    IsNull(oa.'S_Julho/17', 0),
    IsNull(oa.'S_Agosto/17' ,0),
    
    IsNull(oa.'S_Janeiro/17', 0) +
    IsNull(oa.'S_Fevereiro/17', 0) +
    IsNull(oa.'S_Marco/17', 0) +
    IsNull(oa.'S_Abril/17', 0) +
    IsNull(oa.'S_Maio/17', 0) +
    IsNull(oa.'S_Junho/17', 0) +
    IsNull(oa.'S_Julho/17', 0) +
    IsNull(oa.'S_Agosto/17' ,0) as Total
    
    from OITM a
    inner join OITW b
     on a.ItemCode = b.ItemCode
    inner join OMRC c
     on a.FirmCode = c.FirmCode
    inner join OITB d
     on a.ItmsGrpCod = d.ItmsGrpCod
    
    outer apply
    (
        Select 
            Sum(case when M.DocDate Between '2017-01-01' and '2017-01-31' then M.OutQty else 0 end) as 'S_Janeiro/17',
            Sum(case when M.DocDate Between '2017-02-01' and '2017-02-28' then M.OutQty else 0 end) as 'S_Fevereiro/17',
            Sum(case when M.DocDate Between '2017-03-01' and '2017-03-31' then M.OutQty else 0 end) as 'S_Marco/17',
            Sum(case when M.DocDate Between '2017-04-01' and '2017-04-30' then M.OutQty else 0 end) as 'S_Abril/17',
            Sum(case when M.DocDate Between '2017-05-01' and '2017-05-31' then M.OutQty else 0 end) as 'S_Maio/17',
            Sum(case when M.DocDate Between '2017-06-01' and '2017-06-30' then M.OutQty else 0 end) as 'S_Junho/17',
            Sum(case when M.DocDate Between '2017-07-01' and '2017-07-31' then M.OutQty else 0 end) as 'S_Julho/17',
            Sum(case when M.DocDate Between '2017-08-01' and '2017-08-31' then M.OutQty else 0 end) as 'S_Agosto/17'
        From OINM as M 
        where
            M.ItemCode = a.ItemCode
    ) as oa
      
    where a.validFor = 'Y'
    and a.SellItem = 'Y'
    and b.WhsCode = '01'
    
    Group by
    a.ItemCode, a.ItemName, b.OnHand, c.FirmName, d.ItmsGrpNam
    
    order by
    a.ItemCode

    Espero que ajude


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

    segunda-feira, 4 de setembro de 2017 21:40
  • Deleted
    terça-feira, 5 de setembro de 2017 12:00
  • Bom dia,

    Pode ser criado uma visualização com função para que você consiga tirar esse relatório de forma mais ágil. E os valores podem ser realizados contas com parametros , fazendo ciclos com while.

    terça-feira, 5 de setembro de 2017 13:09
  • Boa tarde,

    Por falta de retorno essa thread está sendo encerrada

    Se necessário, favor abrir uma nova thread.

    Atenciosamente,


    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 11 de setembro de 2017 17:17
    Moderador
  • Boa Tarde,

    Necessito realizar a soma das vendas para depois dividir com meu estoque atual, assim vou ter meu giro de estoque.

    segunda-feira, 11 de setembro de 2017 17:26