PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Numéroter les lignes d'une requête.
Numéroter les lignes d'une requête.
Débuté par Michel, 10 juil. 2014 20:30 - 5 réponses
Membre enregistré
125 messages
Posté le 10 juillet 2014 - 20:30
Bonjour,

Y' a-t-il un moyen simple pour qu'une requête (auto-)numérote les lignes successives de l'une ses rubriques ?

... de façon à remplacer pour une rubrique les 'lignes' 1, 2 ... :

[ ligne_1]
[ ligne_2]
...

... par :

1 [ ligne_1]
2 [ ligne_2]
...

??

Remerciements,

Mike
Posté le 10 juillet 2014 - 21:28
Posté le 11 juillet 2014 - 14:15
olivier a écrit :


sauf que ce n'est pas une fonction standard SQL et qu'elle ne concerne
que SQLServer

--
Cordialement JeAn-PhI
Membre enregistré
125 messages
Posté le 11 juillet 2014 - 20:31
Effectivement, WINDEV ne semble pas gérer les

ROW_NUMBER() OVER ()

J'ai cependant trouvé ceci :

http://www.trucsastuces.com/Forums/topic/10464-est-ce-possible-de-numroter-les-lignes-dune-requte/

soit très schématiquement un :

SELECT
(SELECT Count(code) WHERE code < TABLE.code FROM TABLE) +1 ,
TABLE.code
FROM TABLE

... qui est astucieux, mais ne semble pas non plus être trop apprécié par WINDEV ...

A vos bons soins...

Et merci à vous deux,

Mike
Membre enregistré
125 messages
Posté le 14 juillet 2014 - 18:30
Bonjour,

Il y a bien ceci, encore que plutôt lent (parcours, vous avez dit parcours ? ... : 400 items -> environ 85.000 lignes puis retour aux 400 lignes) :

SELECT

Count(cab_1.code) AS COMPTEUR, cab_1.code

FROM cabinet AS cab_1 , cabinet AS cab_2

WHERE cab_1.code >= cab_2.code // signe '=' !! (sinon squeeze le premier enregistrement ...)

GROUP by cab_1.code // NB : GROUP BY 1 -> ne passe pas ...!?
ORDER by 1

... mais les commandes WD_SQL sont assez 'just' et il faut apprendre à faire avec ...

Cela, par exemple, ne marche pas (y compris en client/serveur) :

SELECT HNumEnr() FROM (SELECT code FROM cabinet)

Dommage !

Bonne soirée

Mike
Posté le 14 juillet 2014 - 21:34
Mike a écrit :

soit très schématiquement un :

SELECT
(SELECT Count(code) WHERE code < TABLE.code FROM TABLE) +1 ,
TABLE.code
FROM TABLE

... qui est astucieux, mais ne semble pas non plus être trop apprécié par WINDEV ...


Dans cette requête, il y a ambiguïté.
Peut-être :

SELECT
(SELECT Count(B.code) WHERE B.code < A.code FROM TABLE B) +1 ,
A.code
FROM TABLE A[/quote]
Order by A.code


ou sinon :
SELECT
Count(B.code) +1 ,
A.code
FROM TABLE A , TABLE B [/quote]
WHERE B.code < A.code
Order by A.code