Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Tenho uma lista de dados com os campos de nota, item e valor, gostaria de criar um campo onde para gerar um numero de ordenação por nota.
tabela atual
Nota | Item | Valor |
54326 | 1001 | 463 |
54326 | 1002 | 244 |
54326 | 1003 | 266 |
54326 | 1004 | 385 |
98768 | 1001 | 864 |
98768 | 1002 | 632 |
98768 | 1003 | 673 |
98768 | 1004 | 357 |
87356 | 1001 | 245 |
87356 | 1002 | 753 |
87356 | 1003 | 235 |
87356 | 1004 | 790 |
tabela com a ordenação
Ordem | Nota | Item | Valor |
1 | 54326 | 1001 | 463 |
2 | 54326 | 1002 | 244 |
3 | 54326 | 1003 | 266 |
4 | 54326 | 1004 | 385 |
1 | 98768 | 1001 | 864 |
2 | 98768 | 1002 | 632 |
3 | 98768 | 1003 | 673 |
4 | 98768 | 1004 | 357 |
1 | 87356 | 1001 | 245 |
2 | 87356 | 1002 | 753 |
3 | 87356 | 1003 | 235 |
4 | 87356 | 1004 | 790 |
qual comando posso utilizar para criar o campo conforme a tabela acima?
Autonumber(Nota&'|'&Item,Nota) deve trazer o sequencial que você precisa
If your Data is already sorted then try below
LOAD *,iF(Note=Previous(Note),Rangesum(Peek(InstanceNumber),1),1) as InstanceNumber INLINE [
Note,Item,Value
54326,1001,463
54326,1002,244
54326,1003,266
54326,1004,385
98768,1001,864
98768,1002,632
98768,1003,673
98768,1004,357
87356,1001,245
87356,1002,753
87356,1003,235
87356,1004,790
];
If your data isn't sorted then add Order by Clause
Load Note
,iF(Note=Previous(Note),Rangesum(Peek(InstanceNumber),1),1) as InstanceNumber
,Item
,Value
From YourDataSource
Order by Note,Item;
Amigo, você tem algumas opções;
RecNo() = Numero de ordem da base, mesmo da sequencia da fonte de origem
RowNo() = Numero de sequencia de leitura, mesmo da sequencia de leitura do script
AutoNumber() = Número sequencial representando os valores únicos dos campos declarados em sua função, havendo conjunto de valores repetidos na função, não terá id único;
Load
RecNo() as Ord_Registrado_Base,
RowNo() as Ord_Registro_Leitura,
AutoNumber(Nota&Item&Valor,'Ord1') as Ord_Registro_Unico,
Nota,
Item,
Valor
FROM [lib://PASTA/tabela.QVD] (qvd);
Obs.: Existem outras opções, vide ref abaixo.
Autonumber(Nota&'|'&Item,Nota) deve trazer o sequencial que você precisa
Amigo conseguiu resolver?
Se sim, favor marcar alguma resposta como certa ou útil se for o caso ou apresentar a solução utilizado;
Assim manteremos o fórum organizado para a comunidade ter acesso as resoluções das questões.
A dúvida de um, pode ser de outro.
Abraço.
Funcionou exatamente como precisava, unica coisa que a carga dos dados ficou um pouco mais pesado, na verdade dobrou o tempo de carga para a tabela que estou criando. mas o mais importante é que deu certo, obrigado...
O problema é que a função Autonumber() é monocore, ela aloca apenas um core para ser executada