GARANTIR DESCONTO

Fórum Select Sum em campo declado na query #574593

03/02/2017

0

Boa Tarde a todos!!!!

Pessoal gostaria de saber como posso fazer uma totalização dos valores do campo "QtDisponivel" que que declararei como receptor de uma subtração de dois campos na query abaixo:

É no Sql Server

Select
C.IdConsignacao,
C.CdEmpresa,
E.NmEmpresa,
CdConsignacao = C.CdChamada,
C.IdPessoa,
CdPessoa = PE.CdChamada,
PE.NmPessoa,
C.DtConsignacao,
C.DtUltimaBaixa,
C.IdUsuario,
C.StConsignacao,
C.IdDocumento,
D.NrDocumento,
CI.IdConsignacaoItem,
CI.IdProduto,
CdProduto = P.CdChamada,
P.NmProduto,
LDI.IdProdutoLote,
PL.CdLote,
PL.CdLoteProduto,
CI.QtConsignada,
QtBaixada = IsNull(CI.QtBaixada, 0),
QtDisponivel = IsNull(CI.QtConsignada, 0) - IsNull(CI.QtBaixada, 0),
QtDevolvida = IsNull((Select
Sum(IsNull(CIBD.QtBaixada,0))
From
ConsignacaoItemBaixa CIBD (NOLOCK)
Where
(CIBD.IdConsignacaoItem = CI.IdConsignacaoItem) and
(CIBD.NmEntidadeOrigem = 'LoteDocDevolucao')),0),
QtPrestacaoContas = IsNull((Select
Sum(IsNull(CIBP.QtBaixada,0))
From
ConsignacaoItemBaixa CIBP (NOLOCK)
Where
(CIBP.IdConsignacaoItem = CI.IdConsignacaoItem) and
(CIBP.NmEntidadeOrigem = 'Renegociacao')),0),
DtUltimaBaixaItem = CI.DtUltimaBaixa,
CI.StConsignacaoItem,
CI.IdDocumentoItem,
VlUnitario = Round(CI.VlItem / IsNull(NullIf(CI.QtConsignada, 0), 1), 2),
CI.VlItem,
CI.IdPreco,
PR.NmPreco,
PCP2.IdPessoaFornecedor,
PCP2.CdPessoaFornecedor,
PCP2.NmPessoaFornecedor,
DsPeriodo = 'De todas as datas',
DtInicial = Convert(DateTime, Null),
DtFinal = Convert(DateTime, Null),
StBaixa = Case When Exists(Select
IdConsignacaoItem
From
ConsignacaoItemBaixa CIB (NOLOCK)
Where
(CIB.IdConsignacaoItem = CI.IdConsignacaoItem) and
(CIB.NmEntidadeOrigem = 'Renegociacao'))
Then
'S'
Else
'N'
End,
StDevolucao = Case When Exists(Select IdConsignacaoItem From LotedocDevolucaoItem LDDI Where LDDI.IdConsignacaoItem = CI.IdConsignacaoItem)
Then
'S'
Else
'N'
End
From
Consignacao C (NOLOCK)
Inner Join Pessoa PE On (PE.IdPessoa = C.IdPessoa)
Inner Join Documento D On (C.IdDocumento = D.IdDocumento)
Inner Join EmpresaERP E On (E.CdEmpresa = C.CdEmpresa)
Inner Join ConsignacaoItem CI On (CI.IdConsignacao = C.IdConsignacao)
Inner Join DocumentoItem LDI on (LDI.IdDocumentoItem = CI.IdDocumentoItem)
Left Outer Join ProdutoLote PL on (PL.IdProdutoLote = LDI.IdProdutoLote)
Inner Join vw_Produto P On (P.IdProduto = CI.IdProduto) and (P.StCodigoPrincipal = 'S')
Left Outer Join Preco PR On (PR.IdPreco = CI.IdPreco)
Left Outer Join (Select
PCP.IdProduto,
IdPessoaFornecedor = PCP.IdPessoa,
CdPessoaFornecedor = P.CdChamada,
NmPessoaFornecedor = P.NmPessoa,
PCP.IdPessoa_Categoria_Produto,
PCP.IdPessoa
From
Pessoa_Categoria_Produto PCP (NOLOCK)
Inner Join Pessoa_Categoria_Produto_Com PCPC On ((PCP.IdPessoa_Categoria_Produto = PCPC.IdPessoa_Categoria_Produto) and (PCPC.StFornecedorPrincipal = 'S'))
Inner Join Pessoa P On (P.IdPessoa = PCP.IdPessoa)) PCP2 On (PCP2.IdProduto = CI.IdProduto)
Where
((PE.CdChamada in ('000063'))) And
((C.CdEmpresa in ('2'))) And
((IsNull(CI.QtConsignada, 0) - IsNull(CI.QtBaixada, 0)) > 0)
Anderson Santos

Anderson Santos

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar