Bonjour,
quelqu'un a t'il une astuce pour faire un compteur en sql ?
Merci
Version imprimable
Bonjour,
quelqu'un a t'il une astuce pour faire un compteur en sql ?
Merci
Sous Oracle on parle de séquence.
:faq:
Je cherche un systeme genre requete sql récursive qui me permetterai depuis une valeur de départ de compter jusqu'a une valeur de fin et afficher la valeur.
Je cherche une requete dans l'objectif de créer une vue. (lié à mon poste précédent)
maintenant s'il est possible de crée une vu via du pl/sql je prend aussi.
mon objectif est simple, j'ai une ligne avec un debut et une fin (date) par personne , je cherche à creer une vue qui aurait autant de ligne qu'il y a entre le debut et la fin par personne.
Merci
regarde avec la fonction analytique ROW_NUMBER
cela m'aide pas trop , enfin merci
Comment ça ne t'aide pas trop ??
tu ne nous donnes pas ta requête de départ, le résultat attendu ni la version sur laquelle tu bosses, ni rien du tout !!!
en plus de deviner on devrait faire les recherches pour toi ?
je pense que la FAQ Oracle de ce forum, les tutos de ce site, les multiples sites qui traitent d'Oracle, le site d'Oracle lui-même et enfin les recherches "généralistes" (Google, ...) devraient suffire à te donner des infos !
nous on te met sur des piste avec les infos qu'on a...
row_number() me renvoi un identifiant pas ligne, je cherche à fabriquer un compteur :
Soit un depart :1
une fin :10
je cherche à avoir :
1
2
3
...
10
Merci
TestCase :
Select "normal"Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 create table test (id number, val varchar2(10)); insert into test values (1, 'a') ; insert into test values (1, 'a') ; insert into test values (1, 'a') ; insert into test values (1, 'a') ; insert into test values (1, 'a') ; insert into test values (1, 'a') ; insert into test values (1, 'a') ; insert into test values (1, 'a') ; insert into test values (1, 'a') ; insert into test values (1, 'a') ; insert into test values (1, 'a') ;
avec Row_numberCitation:
rasp> Select
2 id
3 , val
4 From test ;
ID VAL
---------- ----------
1 a
1 a
1 a
1 a
1 a
1 a
1 a
1 a
1 a
1 a
1 a
ou alors je n'ai pas compris le besoin ?Citation:
rasp> Select
2 row_number() Over(order by id) as rownumber
3 , id
4 , val
5 From test ;
ROWNUMBER ID VAL
---------- ---------- ----------
1 1 a
2 1 a
3 1 a
4 1 a
5 1 a
6 1 a
7 1 a
8 1 a
9 1 a
10 1 a
11 1 a
Je cherche à ne pas m'appuyer sur une table je cherche à faire une sorte de boucle (mon compteur) avec une requete sql
je ne sais pas si c'est possible.
Merci
ok, alors c'est possible avec du PL/SQL (depuis la 9i) :
1. créer un type "tableau de nombre"
2. créer un fonction qui prend 2 paramètres en entrée et te retourne le tableauCode:CREATE OR REPLACE TYPE nTabType is table of Number ;
3. utiliser la fonction :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Create or replace function compteur ( nstart in number , nstop in number ) Return nTabType Is returnTab nTabType := nTabType() ; Begin for i in nstart .. nstop Loop returnTab.extend ; returnTab(i) := i ; End Loop ; return returnTab ; End ;
voilà...Citation:
rasp> Select * from Table(compteur(1, 10)) ;
COLUMN_VALUE
------------
1
2
3
4
5
6
7
8
9
10
10 ligne(s) sélectionnée(s).
Peut-on savoir quelle solution vous avez retenue ?
S'agit-il d'une des solutions de Yorglaa (qui se démène) ou d'une adaptation ou encore d'une toute autre idée ?
la solution apportée sur mon second poste. Je cherchais une autre solution pour mon pb basée sur une hypothèse de compteur. Mais je laisse tombé.
Merci
pour faire un compteur :
je suppose dejà que la valeur limite c'est MAX et que tu stoke quleque part la valeur courante de ton compteur (VALCOUR) , je te donne la formule pour calculer la Valeur suivante (VALSUIV) sera :
la valeur suivante VALSUIV se remet à 1 automatiquement si VALCOUR=MAXCode:VALSUIV = VALCOUR*(1- FLOOR(VALCOUR/MAX)) +1
j'éspère que ça t'aidera
Dans tous tes sujets j'ai l'impression que tu te trompes de langage... le SQL n'est pas fait pour répondre à ce type de besoin... même si c'est possible techniquement le langage reste très peu adapté :?
Salut,
Je cherchais un moyen me permettant via une requete SQL dans l'idée de faire une vue de passer d'une table ou j'ai une ligne avec une date de debut et fin à une table ou j'ai une ligne par année.
Pour moi le SQL etait le plus adapté.