Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bom dia,
Pessoal estou com uma dúvida ao elaborar uma expressão, pois preciso adicionar um cálculo somente quando o campo for igual CD_CONTADET = '93'.
1) Essa é a expressão geral que uso para todas as CD_CONTADET.
((SUM(IF(ANO_BXA = '2014' AND MES_BXA = 'jul' AND FL_DC = 'C',VL_BAIXA,0))-
SUM(IF(ANO_BXA = '2014' AND MES_BXA = 'jul' AND FL_DC = 'D',VL_BAIXA,0)))
2) Agora o que preciso é unir abaixo a Expressão A + Expressão B, numa só quando CD_CONTADET = '93'.
Expressão A:
(SUM(IF(ANO_BXA = '2014' AND MES_BXA = 'jul' AND FL_DC = 'C' AND CD_CONTADET = '93',VL_BAIXA,0))-
SUM(IF(ANO_BXA = '2014' AND MES_BXA = 'jul' AND FL_DC = 'D' AND CD_CONTADET = '93',VL_BAIXA,0)))
Expressão B:
(SUM(IF(ANO_BXA_ = '2014' AND MES_BXA_ = 'jul' AND PC_COMISSAO <> '0',VL_COMISSAO,0)))
Att,
André Tonini
Eu criei uma carga com os dados do exemplo que você postou,
logo apos criei uma chave por mes/ano, e o gráfico de tabela com as dimensões CD_CONTADET, NM_CONTADET, ANO_BXA, MES_BXA.
segue scripts:
Carga usada no exeplo
//Cargas
FINANCEIRO_TMP:
LOAD * INLINE [
CD_CONTADET, NM_CONTADET, ANO_BXA, MES_BXA, VALOR_FINANCEIRO
2, Engenharia Elétrica, 2014, jul, 1000
6, Telefone, 2014, jul, 2000
93, Salário Motorista, 2014, jul, 10000
];
COMISSAO_TMP:
LOAD * INLINE [
CD_MOTORISTA, NM_MOTORISTA, ANO_BXA_C, MES_BXA_C, VALOR_COMISSAO
1, Pedro, 2014, jun, 600
2, João, 2014, jul, 500
18, Pedro, 2014, jul, 700
27, Antonio, 2014, jul, 1300
];
//Criando uma Chave Mês_Ano
FINANCEIRO:
NoConcatenate
LOAD *,
MES_BXA&ANO_BXA as MesAno
Resident FINANCEIRO_TMP;
DROP Table FINANCEIRO_TMP;
COMISSAO:
NoConcatenate
LOAD *,
MES_BXA_C&ANO_BXA_C as MesAno
Resident COMISSAO_TMP;
DROP Table COMISSAO_TMP;
Expressão do gráfico:
if(CD_CONTADET = 93
,sum(VALOR_FINANCEIRO)+ Sum(VALOR_COMISSAO)
,sum(VALOR_FINANCEIRO))
E ai Andre, ja tentou set analysis, seria mais ou menos isso?
(sum({< ANO_BXA = {2014}, MES_BXA = {'jul'} , FL_DC = {'C'} , CD_CONTADET = {93} >}VL_BAIXA)
-
sum({< ANO_BXA = {2014}, MES_BXA = {'jul'} , FL_DC = {'D'} , CD_CONTADET = {93} >}VL_BAIXA))
+
sum( {<NO_BXA = {2014}, MES_BXA = {'jul'} , CD_CONTADET = {93}. PC_COMISSAO -= {0} >} VL_COMISSAO)
Boa tarde André Tonini
Você ja tentou usar um IF para isso?
Ex:
If(CD_CONTADET = '93'
,((SUM(IF(ANO_BXA = '2014' AND MES_BXA = 'jul' AND FL_DC = 'C' AND CD_CONTADET = '93',VL_BAIXA,0))-
SUM(IF(ANO_BXA = '2014' AND MES_BXA = 'jul' AND FL_DC = 'D' AND CD_CONTADET = '93',VL_BAIXA,0))))
,(SUM(IF(ANO_BXA_ = '2014' AND MES_BXA_ = 'jul' AND PC_COMISSAO <> '0',VL_COMISSAO,0)))
)
Kaauan e Marciel,
Boa tarde, grato pelo retorno porém acabei mudando um pouco a minha pergunta, pois como coloquei acima eu estava fazendo a ligação entre as tabelas pelo campo CD_CONTADET, porém esse campo não existia na tabela comissão - então havia criado no excel e via load no script fazia essa "amarração"...mas ficou muito pesado a carga e virou uma gambiarra.
Bom então reformulando a minha pergunta, vamos ver se isso é possivel:
a) Tenho uma tabela chamada financeiro, que apresenta os seguintes campos.
b) Tenho uma outra tabela chamada comissão, que não faz ligação direta com a tabela anterior, apenas os campos ANO_BXA e MES_BXA são semelhantes.
c) Bom agora é que vem o meu problema, existe uma maneira de somar o Valor Comissão (ano_bxa=2014,mes_bxa='jul') R$ 2.500,00 com o Valor Financeiro da CD_CONTADET = '93'?
Pois nesse cenário que estou criando entendemos que o CD_CONTADET = 93 deverá ser composto pelo 10.000,00 (salário motorista) + 2.500,00 (comissão).
Att,
André Tonini
André, segue um exemplo, veja se atente a sua duvida.
Olá Marciel, desculpa mas não estou conseguindo abrir o qvw, você consegue postar o script e a expressão?
Grato
André
Eu criei uma carga com os dados do exemplo que você postou,
logo apos criei uma chave por mes/ano, e o gráfico de tabela com as dimensões CD_CONTADET, NM_CONTADET, ANO_BXA, MES_BXA.
segue scripts:
Carga usada no exeplo
//Cargas
FINANCEIRO_TMP:
LOAD * INLINE [
CD_CONTADET, NM_CONTADET, ANO_BXA, MES_BXA, VALOR_FINANCEIRO
2, Engenharia Elétrica, 2014, jul, 1000
6, Telefone, 2014, jul, 2000
93, Salário Motorista, 2014, jul, 10000
];
COMISSAO_TMP:
LOAD * INLINE [
CD_MOTORISTA, NM_MOTORISTA, ANO_BXA_C, MES_BXA_C, VALOR_COMISSAO
1, Pedro, 2014, jun, 600
2, João, 2014, jul, 500
18, Pedro, 2014, jul, 700
27, Antonio, 2014, jul, 1300
];
//Criando uma Chave Mês_Ano
FINANCEIRO:
NoConcatenate
LOAD *,
MES_BXA&ANO_BXA as MesAno
Resident FINANCEIRO_TMP;
DROP Table FINANCEIRO_TMP;
COMISSAO:
NoConcatenate
LOAD *,
MES_BXA_C&ANO_BXA_C as MesAno
Resident COMISSAO_TMP;
DROP Table COMISSAO_TMP;
Expressão do gráfico:
if(CD_CONTADET = 93
,sum(VALOR_FINANCEIRO)+ Sum(VALOR_COMISSAO)
,sum(VALOR_FINANCEIRO))