Selection des 5 dernieres lignes d'une table.
Fermé
princejude
Messages postés
18
Date d'inscription
mardi 22 avril 2008
Statut
Membre
Dernière intervention
1 novembre 2009
-
23 oct. 2008 à 19:08
princejude Messages postés 18 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 1 novembre 2009 - 29 oct. 2008 à 20:34
princejude Messages postés 18 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 1 novembre 2009 - 29 oct. 2008 à 20:34
A voir également:
- Selection des 5 dernieres lignes d'une table.
- Table ascii - Guide
- Table des matières word - Guide
- Aller à la ligne dans une cellule excel - Guide
- Excel trier par ordre alphabétique en gardant les lignes - Guide
- Tableau de combinaison loto 5/90 - Forum Excel
5 réponses
chuka
Messages postés
965
Date d'inscription
samedi 11 octobre 2008
Statut
Membre
Dernière intervention
29 juillet 2010
378
28 oct. 2008 à 14:00
28 oct. 2008 à 14:00
Salut,
essaie cela:
select * from (select id_compte,date_oper,libelle_oper,ROW_NUMBER() OVER (ORDER BY date_oper desc) num from mouvement
where id_compte='co01') where num<5
J'ai creer ce que tu as posté... et maintenant j'ai bien les 5 derniers mouvement...
essaie cela:
select * from (select id_compte,date_oper,libelle_oper,ROW_NUMBER() OVER (ORDER BY date_oper desc) num from mouvement
where id_compte='co01') where num<5
J'ai creer ce que tu as posté... et maintenant j'ai bien les 5 derniers mouvement...
macgawel
Messages postés
664
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
1 novembre 2008
89
23 oct. 2008 à 19:16
23 oct. 2008 à 19:16
Bonjour.
Oracle est un système de Bases de données relationnelles.
Du coup, les 5 dernieres lignes d'une table, ça ne veut rien dire :
Vu la façon dont Oracle stocke les données, l'endroit ou la ligne se trouve ne veut rien dire.
Tu peux préciser ce que tu veux dire par "les 5 dernières lignes" ?
Oracle est un système de Bases de données relationnelles.
Du coup, les 5 dernieres lignes d'une table, ça ne veut rien dire :
Vu la façon dont Oracle stocke les données, l'endroit ou la ligne se trouve ne veut rien dire.
Tu peux préciser ce que tu veux dire par "les 5 dernières lignes" ?
princejude
Messages postés
18
Date d'inscription
mardi 22 avril 2008
Statut
Membre
Dernière intervention
1 novembre 2009
23 oct. 2008 à 19:27
23 oct. 2008 à 19:27
je dirai plutot les 5 derniers enregistrements dans une table.
En fait je cherche à ecrire une procedure stockée.
En fait je cherche à ecrire une procedure stockée.
macgawel
Messages postés
664
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
1 novembre 2008
89
23 oct. 2008 à 19:34
23 oct. 2008 à 19:34
Oui, mais les 5 derniers par rapport à quoi ?
Parce que la notion de '5 derniers enregistrements' n'existe pas vraiment dans Oracle...
Parce que la notion de '5 derniers enregistrements' n'existe pas vraiment dans Oracle...
princejude
Messages postés
18
Date d'inscription
mardi 22 avril 2008
Statut
Membre
Dernière intervention
1 novembre 2009
>
macgawel
Messages postés
664
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
1 novembre 2008
23 oct. 2008 à 19:59
23 oct. 2008 à 19:59
je ne suis pas aussi avancé dans le domaine mais je veux illustrer la chose :
j'ai uue table MOUVEMENT sur un compce bancaire.
et je vroudrais renvoyer lles 5 derniers mouvements sur le compte.
j'ai uue table MOUVEMENT sur un compce bancaire.
et je vroudrais renvoyer lles 5 derniers mouvements sur le compte.
macgawel
Messages postés
664
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
1 novembre 2008
89
>
princejude
Messages postés
18
Date d'inscription
mardi 22 avril 2008
Statut
Membre
Dernière intervention
1 novembre 2009
24 oct. 2008 à 14:11
24 oct. 2008 à 14:11
Si tu as un champ "date", tu peux sortir ton select par ordre décroissant de la date de mouvement.
Sinon, si l'identifiant est un champ auto-incrémenté, fais ton tri sur ce champ...
Sinon, si l'identifiant est un champ auto-incrémenté, fais ton tri sur ce champ...
princejude
Messages postés
18
Date d'inscription
mardi 22 avril 2008
Statut
Membre
Dernière intervention
1 novembre 2009
>
macgawel
Messages postés
664
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
1 novembre 2008
28 oct. 2008 à 13:22
28 oct. 2008 à 13:22
voici ce que j'ai pu faire
creation des tables:*************************
create table client
(
id_client varchar2(12) primary key,
nom varchar2(25),
prenom varchar2(35),
e_mail varchar2(50),
addresse varchar2(50),
contact varchar2(15),
mot_de_passe varchar2(12))
tablespace e_banking_tab;
create table compte
(
num_compte varchar2(12) primary key,
solde number,
debitmax number,
type_compte number,
date_creation date,
num_client varchar2(12),
constraint compte_client foreign key(num_client)
references client(id_client)
)
tablespace e_banking_tab;
create table mouvement
(
id_mouvement varchar2(12) primary key,
libelle_oper varchar2(25),
date_oper date,
montant_oper number,
solde_apres_oper number,
id_compte varchar2(12),
constraint compte_mouvement foreign key(id_compte)
references compte(num_compte)
)
tablespace e_banking_tab;
commit;
insertion de champs:******************************
insert into client values ('cli01','koné','françois','koné@yahoo.fr','02 bp 14 abidjan 02','01 26 45 12','clikofr@01');
insert into client values ('cli02','konaté','loceni','konaté@yahoo.fr','12 bp 104 bingerville 12','05 12 78 12','clikolo@02');
insert into client values ('cli03','yoboué','alfrède','yoboué@yahoo.fr','05 bp 845 abidjan 05','08 24 65 12','cliyoal@03');
insert into compte values ('co01',450000,150000,2,'10-10-2005','cli01');
insert into compte values ('co02',1250000,250000,1,'01-08-2006','cli01');
insert into compte values ('co03',850000,150000,2,'03-05-1999','cli03');
insert into compte values ('co04',0,150000,2,'10-10-2008','cli02');
insert into mouvement values ('mouv01','creation','10-10-2005',0,0,'co01');
insert into mouvement values ('mouv02','depot','11-10-2005',300000,300000,'co01');
insert into mouvement values ('mouv03','virement','15-11-2005',50000,350000,'co01');
insert into mouvement values ('mouv04','retrait','10-12-2005',100000,350000,'co01');
insert into mouvement values ('mouv05','retrait','19-12-2005',150000,200000,'co01');
insert into mouvement values ('mouv06','depot','06-01-2006',250000,450000,'co01');
insert into mouvement values ('mouv07','creation','01-08-2006',1000000,1000000,'co01');
insert into mouvement values ('mouv08','depot','13-09-2006',250000,1250000,'co01');
insert into mouvement values ('mouv09','creation','03-05-1999',100000,100000,'co03');
insert into mouvement values ('mouv10','depot','05-06-1999',800000,900000,'co03');
insert into mouvement values ('mouv11','virement','15-11-2005',50000,850000,'co03');
insert into mouvement values ('mouv12','creation','10-10-2008',0,0,'co02');
commit;
Voici mes essais**********************
SQL> select id_compte,date_oper,libelle_oper from mouvement where rownum<=5 and
id_compte='co01' group by id_compte,date_oper,libelle_oper order by date_oper d
esc;
ID_COMPTE DATE_OPE LIBELLE_OPER
------------ -------- -------------------------
co01 19/12/05 retrait
co01 10/12/05 retrait
co01 15/11/05 virement
co01 11/10/05 depot
co01 10/10/05 creation
SQL> select id_compte,date_oper,libelle_oper from mouvement where rownum<=4 and
id_compte='co01' group by id_compte,date_oper,libelle_oper order by date_oper d
esc;
ID_COMPTE DATE_OPE LIBELLE_OPER
------------ -------- -------------------------
co01 10/12/05 retrait
co01 15/11/05 virement
co01 11/10/05 depot
co01 10/10/05 creation
SQL> select id_compte,date_oper from mouvement where rownum<=5 and id_compte='co
02' group by id_compte,date_oper order by date_oper desc;
ID_COMPTE DATE_OPE
------------ --------
co02 10/10/08
SQL> select id_compte,date_oper from mouvement where rownum<=4 and id_compte='co
01' group by id_compte,date_oper order by date_oper desc;
ID_COMPTE DATE_OPE
------------ --------
co01 10/12/05
co01 15/11/05
co01 11/10/05
co01 10/10/05
et jusque là pas de resultats escomptés
creation des tables:*************************
create table client
(
id_client varchar2(12) primary key,
nom varchar2(25),
prenom varchar2(35),
e_mail varchar2(50),
addresse varchar2(50),
contact varchar2(15),
mot_de_passe varchar2(12))
tablespace e_banking_tab;
create table compte
(
num_compte varchar2(12) primary key,
solde number,
debitmax number,
type_compte number,
date_creation date,
num_client varchar2(12),
constraint compte_client foreign key(num_client)
references client(id_client)
)
tablespace e_banking_tab;
create table mouvement
(
id_mouvement varchar2(12) primary key,
libelle_oper varchar2(25),
date_oper date,
montant_oper number,
solde_apres_oper number,
id_compte varchar2(12),
constraint compte_mouvement foreign key(id_compte)
references compte(num_compte)
)
tablespace e_banking_tab;
commit;
insertion de champs:******************************
insert into client values ('cli01','koné','françois','koné@yahoo.fr','02 bp 14 abidjan 02','01 26 45 12','clikofr@01');
insert into client values ('cli02','konaté','loceni','konaté@yahoo.fr','12 bp 104 bingerville 12','05 12 78 12','clikolo@02');
insert into client values ('cli03','yoboué','alfrède','yoboué@yahoo.fr','05 bp 845 abidjan 05','08 24 65 12','cliyoal@03');
insert into compte values ('co01',450000,150000,2,'10-10-2005','cli01');
insert into compte values ('co02',1250000,250000,1,'01-08-2006','cli01');
insert into compte values ('co03',850000,150000,2,'03-05-1999','cli03');
insert into compte values ('co04',0,150000,2,'10-10-2008','cli02');
insert into mouvement values ('mouv01','creation','10-10-2005',0,0,'co01');
insert into mouvement values ('mouv02','depot','11-10-2005',300000,300000,'co01');
insert into mouvement values ('mouv03','virement','15-11-2005',50000,350000,'co01');
insert into mouvement values ('mouv04','retrait','10-12-2005',100000,350000,'co01');
insert into mouvement values ('mouv05','retrait','19-12-2005',150000,200000,'co01');
insert into mouvement values ('mouv06','depot','06-01-2006',250000,450000,'co01');
insert into mouvement values ('mouv07','creation','01-08-2006',1000000,1000000,'co01');
insert into mouvement values ('mouv08','depot','13-09-2006',250000,1250000,'co01');
insert into mouvement values ('mouv09','creation','03-05-1999',100000,100000,'co03');
insert into mouvement values ('mouv10','depot','05-06-1999',800000,900000,'co03');
insert into mouvement values ('mouv11','virement','15-11-2005',50000,850000,'co03');
insert into mouvement values ('mouv12','creation','10-10-2008',0,0,'co02');
commit;
Voici mes essais**********************
SQL> select id_compte,date_oper,libelle_oper from mouvement where rownum<=5 and
id_compte='co01' group by id_compte,date_oper,libelle_oper order by date_oper d
esc;
ID_COMPTE DATE_OPE LIBELLE_OPER
------------ -------- -------------------------
co01 19/12/05 retrait
co01 10/12/05 retrait
co01 15/11/05 virement
co01 11/10/05 depot
co01 10/10/05 creation
SQL> select id_compte,date_oper,libelle_oper from mouvement where rownum<=4 and
id_compte='co01' group by id_compte,date_oper,libelle_oper order by date_oper d
esc;
ID_COMPTE DATE_OPE LIBELLE_OPER
------------ -------- -------------------------
co01 10/12/05 retrait
co01 15/11/05 virement
co01 11/10/05 depot
co01 10/10/05 creation
SQL> select id_compte,date_oper from mouvement where rownum<=5 and id_compte='co
02' group by id_compte,date_oper order by date_oper desc;
ID_COMPTE DATE_OPE
------------ --------
co02 10/10/08
SQL> select id_compte,date_oper from mouvement where rownum<=4 and id_compte='co
01' group by id_compte,date_oper order by date_oper desc;
ID_COMPTE DATE_OPE
------------ --------
co01 10/12/05
co01 15/11/05
co01 11/10/05
co01 10/10/05
et jusque là pas de resultats escomptés
princejude
Messages postés
18
Date d'inscription
mardi 22 avril 2008
Statut
Membre
Dernière intervention
1 novembre 2009
>
macgawel
Messages postés
664
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
1 novembre 2008
23 oct. 2008 à 19:59
23 oct. 2008 à 19:59
je ne suis pas aussi avancé dans le domaine mais je veux illustrer la chose :
j'ai uue table MOUVEMENT sur un compce bancaire.
et je vroudrais renvoyer lles 5 derniers mouvements sur le compte.
j'ai uue table MOUVEMENT sur un compce bancaire.
et je vroudrais renvoyer lles 5 derniers mouvements sur le compte.
Stef60
Messages postés
251
Date d'inscription
jeudi 31 mai 2007
Statut
Membre
Dernière intervention
22 avril 2009
41
23 oct. 2008 à 19:45
23 oct. 2008 à 19:45
Bonsoir,
tu as un champs auto-incrementé ou un champs date dans ta table ?
tu as un champs auto-incrementé ou un champs date dans ta table ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
chuka
Messages postés
965
Date d'inscription
samedi 11 octobre 2008
Statut
Membre
Dernière intervention
29 juillet 2010
378
24 oct. 2008 à 15:02
24 oct. 2008 à 15:02
Salut,
si c'est sous oracle tu peux faire un truc du style:
select nom_du_champ,rownum from ma_table where rownum<5
order by id_table desc
Pour MySQl tu as LIMIT que tu peux mettre comme condition...
J'espere ca pourra t'aider!!
@+
si c'est sous oracle tu peux faire un truc du style:
select nom_du_champ,rownum from ma_table where rownum<5
order by id_table desc
Pour MySQl tu as LIMIT que tu peux mettre comme condition...
J'espere ca pourra t'aider!!
@+
princejude
Messages postés
18
Date d'inscription
mardi 22 avril 2008
Statut
Membre
Dernière intervention
1 novembre 2009
28 oct. 2008 à 13:30
28 oct. 2008 à 13:30
merci pour ton aide mais j'ai toujours pas de resultats satisfaisants.
ce que j'ai essayé
SQL> select id_compte,date_oper,libelle_oper from mouvement where rownum<=5 and
id_compte='co01' group by id_compte,date_oper,libelle_oper order by date_oper d
esc;
ID_COMPTE DATE_OPE LIBELLE_OPER
------------ -------- -------------------------
co01 19/12/05 retrait
co01 10/12/05 retrait
co01 15/11/05 virement
co01 11/10/05 depot
co01 10/10/05 creation
alors qu'il ya des mouvements plus recents que ceux ci .
En effet voici mes tables:
create table client
(
id_client varchar2(12) primary key,
nom varchar2(25),
prenom varchar2(35),
e_mail varchar2(50),
addresse varchar2(50),
contact varchar2(15),
mot_de_passe varchar2(12))
tablespace e_banking_tab;
create table compte
(
num_compte varchar2(12) primary key,
solde number,
debitmax number,
type_compte number,
date_creation date,
num_client varchar2(12),
constraint compte_client foreign key(num_client)
references client(id_client)
)
tablespace e_banking_tab;
create table mouvement
(
id_mouvement varchar2(12) primary key,
libelle_oper varchar2(25),
date_oper date,
montant_oper number,
solde_apres_oper number,
id_compte varchar2(12),
constraint compte_mouvement foreign key(id_compte)
references compte(num_compte)
)
tablespace e_banking_tab;
commit;
insertion *************
insert into client values ('cli01','koné','françois','koné@yahoo.fr','02 bp 14 abidjan 02','01 26 45 12','clikofr@01');
insert into client values ('cli02','konaté','loceni','konaté@yahoo.fr','12 bp 104 bingerville 12','05 12 78 12','clikolo@02');
insert into client values ('cli03','yoboué','alfrède','yoboué@yahoo.fr','05 bp 845 abidjan 05','08 24 65 12','cliyoal@03');
insert into compte values ('co01',450000,150000,2,'10-10-2005','cli01');
insert into compte values ('co02',1250000,250000,1,'01-08-2006','cli01');
insert into compte values ('co03',850000,150000,2,'03-05-1999','cli03');
insert into compte values ('co04',0,150000,2,'10-10-2008','cli02');
insert into mouvement values ('mouv01','creation','10-10-2005',0,0,'co01');
insert into mouvement values ('mouv02','depot','11-10-2005',300000,300000,'co01');
insert into mouvement values ('mouv03','virement','15-11-2005',50000,350000,'co01');
insert into mouvement values ('mouv04','retrait','10-12-2005',100000,350000,'co01');
insert into mouvement values ('mouv05','retrait','19-12-2005',150000,200000,'co01');
insert into mouvement values ('mouv06','depot','06-01-2006',250000,450000,'co01');
insert into mouvement values ('mouv07','creation','01-08-2006',1000000,1000000,'co01');
insert into mouvement values ('mouv08','depot','13-09-2006',250000,1250000,'co01');
insert into mouvement values ('mouv09','creation','03-05-1999',100000,100000,'co03');
insert into mouvement values ('mouv10','depot','05-06-1999',800000,900000,'co03');
insert into mouvement values ('mouv11','virement','15-11-2005',50000,850000,'co03');
insert into mouvement values ('mouv12','creation','10-10-2008',0,0,'co02');
commit;
ce que j'ai essayé
SQL> select id_compte,date_oper,libelle_oper from mouvement where rownum<=5 and
id_compte='co01' group by id_compte,date_oper,libelle_oper order by date_oper d
esc;
ID_COMPTE DATE_OPE LIBELLE_OPER
------------ -------- -------------------------
co01 19/12/05 retrait
co01 10/12/05 retrait
co01 15/11/05 virement
co01 11/10/05 depot
co01 10/10/05 creation
alors qu'il ya des mouvements plus recents que ceux ci .
En effet voici mes tables:
create table client
(
id_client varchar2(12) primary key,
nom varchar2(25),
prenom varchar2(35),
e_mail varchar2(50),
addresse varchar2(50),
contact varchar2(15),
mot_de_passe varchar2(12))
tablespace e_banking_tab;
create table compte
(
num_compte varchar2(12) primary key,
solde number,
debitmax number,
type_compte number,
date_creation date,
num_client varchar2(12),
constraint compte_client foreign key(num_client)
references client(id_client)
)
tablespace e_banking_tab;
create table mouvement
(
id_mouvement varchar2(12) primary key,
libelle_oper varchar2(25),
date_oper date,
montant_oper number,
solde_apres_oper number,
id_compte varchar2(12),
constraint compte_mouvement foreign key(id_compte)
references compte(num_compte)
)
tablespace e_banking_tab;
commit;
insertion *************
insert into client values ('cli01','koné','françois','koné@yahoo.fr','02 bp 14 abidjan 02','01 26 45 12','clikofr@01');
insert into client values ('cli02','konaté','loceni','konaté@yahoo.fr','12 bp 104 bingerville 12','05 12 78 12','clikolo@02');
insert into client values ('cli03','yoboué','alfrède','yoboué@yahoo.fr','05 bp 845 abidjan 05','08 24 65 12','cliyoal@03');
insert into compte values ('co01',450000,150000,2,'10-10-2005','cli01');
insert into compte values ('co02',1250000,250000,1,'01-08-2006','cli01');
insert into compte values ('co03',850000,150000,2,'03-05-1999','cli03');
insert into compte values ('co04',0,150000,2,'10-10-2008','cli02');
insert into mouvement values ('mouv01','creation','10-10-2005',0,0,'co01');
insert into mouvement values ('mouv02','depot','11-10-2005',300000,300000,'co01');
insert into mouvement values ('mouv03','virement','15-11-2005',50000,350000,'co01');
insert into mouvement values ('mouv04','retrait','10-12-2005',100000,350000,'co01');
insert into mouvement values ('mouv05','retrait','19-12-2005',150000,200000,'co01');
insert into mouvement values ('mouv06','depot','06-01-2006',250000,450000,'co01');
insert into mouvement values ('mouv07','creation','01-08-2006',1000000,1000000,'co01');
insert into mouvement values ('mouv08','depot','13-09-2006',250000,1250000,'co01');
insert into mouvement values ('mouv09','creation','03-05-1999',100000,100000,'co03');
insert into mouvement values ('mouv10','depot','05-06-1999',800000,900000,'co03');
insert into mouvement values ('mouv11','virement','15-11-2005',50000,850000,'co03');
insert into mouvement values ('mouv12','creation','10-10-2008',0,0,'co02');
commit;
28 oct. 2008 à 14:15
je vais le tester.
29 oct. 2008 à 20:34
merci encore pour ton aide:
c'etait yapo judicael de ITA