J'utilise la version Advantage Database Server: 10.10.0.49. J'essaie de créer un numéro de ligne qui se réinitialise lors du changement d'identifiant.ADS réinitialisation numéro de ligne sur le changement de la variable d'ID retourne faux
J'ai testé un code similaire sur MySQL et cela fonctionne. Avec l'avantage, les variables renvoient 'faux' plutôt que les valeurs attendues. J'ai créé ce code de test dans ADS Architect.
drop table test;
create table test (id varchar(5),descrip varchar(10));
insert into test (id,descrip) values ('1','abc');
insert into test (id,descrip) values ('1','xyz');
insert into test (id,descrip) values ('1','hij');
insert into test (id,descrip) values ('2','abc');
insert into test (id,descrip) values ('2','hij');
set @ids = '';
set @row_num = 0;
select
@row_num = case when @ids = id then @row_num + 1 else 1 end AS row_num
,@ids = id as ids
,id
,descrip
from
test
order by
id
... qui retourne
Item | row_num | ids |id |descrip
-----|---------|------|---|--------
1 |FALSE |FALSE |1 |abc
2 |FALSE |FALSE |1 |xyz
3 |FALSE |FALSE |1 |hij
4 |FALSE |FALSE |2 |abc
5 |FALSE |FALSE |2 |hij
... et je me attendais
Item | row_num | ids |id |descrip
-----|---------|------|---|--------
1 |1 |1 |1 |abc
2 |2 |1 |1 |xyz
3 |3 |1 |1 |hij
4 |1 |2 |2 |abc
5 |2 |2 |2 |hij
Over
.. Partition By
est pas pris en charge par l'ADS pour autant que je peux voir.
Merci Jens, ça marche. J'ai juste besoin de le mapper à mes données réelles maintenant - cela pourrait être difficile car c'est une méthode peu familière pour moi, mais vous avez été d'une grande aide. –