Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Verificar ID meses anterior

Boa tarde pessoal,

Estou precisando de uma ajuda...

Tenho uma situação de cadastro de contratos com os campos id, dataRef, codBanco e sequencia.

Cada sequencia representa um contrato, codBanco é o banco que gerou o contrato e dataRef é o mês/ano de análise e id é o cliente.

Preciso colocar um contador 1 quando o contrato for novo, ou seja, quando não existir aquela linha no mês anterior.

id

DataRef

Banco

sequencia

14532

out/11

32218

1

14532

out/11

32218

2

14532

nov/11

32218

1

14532

nov/11

32218

2

14532

nov/11

32218

3

14532

14532

14532

nov/11

Dez/11

Dez/11

35274

32218

32218

1

1

2

No exemplo colocado, no mês outubro existem 2 contratos pro cliente no mesmo banco (sequencia 1 e 2), no mês novembro existem 4 contratos pro mesmo cliente, sendo o de sequencia 1 e 2 os mesmo do mês anterior (mesmo banco) e o sequencia 3 novo contrato para o mesmo banco e outro contrato novo (sequencia 1) para outro banco.

Nesse caso, os contratos novos devem receber um contador 1 numa coluna depois da sequencia, e assim ir verificando quando for contrato novo.

Se alguem puder me ajudar ou dar uma clareada nas ideias, agradeço!

1 Solution

Accepted Solutions
cesaraccardi
Specialist
Specialist

Ola Adriana,

Da uma olhada no arquivo em anexo, acho que atende sua necessidade.

Abracos,

Cesar

View solution in original post

10 Replies
Not applicable
Author

Cara faz um if no script ,


If (sequencia = 3 , 1 ) as novocontrato,

Not applicable
Author

Não dá, nem sempre será o 3... No exemplo é a sequencia 3 de um banco e sequencia 1 de outro... Preciso verificar se a linha já existia no mÊs anterior.

rphpacheco
Creator III
Creator III

Boa tarde.

Criei um QVW exemplo levando em consideração o que entendi sobre o problema.

Verifique se este arquivo atende a sua necessidade.

Abraço!

rphpacheco
Creator III
Creator III

Segue o código:

LET Incremento = 1;

Auxiliar:
LOAD id,
     DataRef,
     Banco,
     AutoNumber(id&'|'&DataRef&'|'&Banco,'CHAVE')   as [Chave]
FROM

(ooxml, embedded labels, table is Plan1);


Final:
LOAD
*,
If(RecNo() = 1 and not IsNull([Chave]), // Aqui você verificará se contém dado no primeiro registro [Chave]
  [Chave],
  If(Peek([Chave],-1) = [Chave],
   Peek(Sequência,-1)+$(Incremento)
   ,1
  )
)              as Sequência
Resident Auxiliar;

DROP Field [Chave]
From Final;

DROP Table Auxiliar;

Not applicable
Author

Raphael,

testei sua solução. Na verdade, a sequencia eu já tenho... Cada numero de sequencia representa um contrato pra um banco. Podem existir sequencias de números iguais, pra mesma pessoa, porém elas serão de bancos diferentes (igual coloquei no exemplo). Eu preciso verificar se a sequencia, daquele banco já existia no mÊs anterior, se ela não existia, é um contrato novo.

rphpacheco
Creator III
Creator III

Desculpe Adriana, mas não entendi a sua necessidade. Pois pelo que entendi, a sequência vem da combinação dos campos Id, Data e Banco ok? Sendo assim, o mesmo contrato pode repetir por vários meses e se for assim a sua necessidade em ver apenas o mês anterior não iá funcionar ao menos que ele se repita em todos os meses.

cesaraccardi
Specialist
Specialist

Ola Adriana,

Da uma olhada no arquivo em anexo, acho que atende sua necessidade.

Abracos,

Cesar

rphpacheco
Creator III
Creator III

Pelo o que entendi, ela quer que o script percorra os contratos e bancos através dos meses e identifique como novo a última ocorrência.

Contratos.jpg

Ou seja, as linhas selecionadas deveriam conter valor 1, pois a primeira tem o id = 14532 + Chave_Contrato = 35274, o que seria a única ocorrência em todos os meses. e a última seria a combinação id = 14532 + Chave_Contrato = 32218, que vem apresentando ocorrência nos meses, mas será tratado como novo contrato em sua última ocorrência.

Acredito que seja isso, mas somente a adriana poderá dizer ao certo.

cesaraccardi
Specialist
Specialist

Ola Raphael,

Faz sentido, porem eu entendi que id seria o identificador do cliente e se ela quer saber os novos contratos de determinado cliente em um determinado banco a chave seria id, banco e sequencia. Por novos contratos entende-se id+banco+sequencia inexistentes nos meses anteriores, ou seja, o cliente 14532 teve um contrato novo (sequencia 1) para o banco 35274. Ja na ultima linha destacada nao seria um contrato novo porque o contrato de sequencia 2 ja existe para o banco 32218, cliente 14532 em meses anteriores. Mas como voce bem disse Raphael, so a Adriana pode confirmar isso.

Abracos,

Cesar