Bonsoir à tous,
J'ai une table DECOMPTE qui contient les champs MOIS, ANNEE et MONTANT je souhaiterais récupérer les enregistrements se trouvant sur une plage de DEBUT_MOIS, DEBUT_ANNEE et FIN_MOIS, FIN_ANNEE
Par exemple:
Table DECOMPTE:
ID MOIS ANNEE MONTANT 1 2 2018 1000.00 2 7 2018 2000.00 3 1 2019 3000.00 4 5 2019 4000.00
INSERTION:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 CREATE TABLE DECOMPTE ( ID INTEGER, MOIS INTEGER, ANNEE INTEGER, MONTANT NUMERIC(18,2) );
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 INSERT INTO DECOMPTE (ID, MOIS, ANNEE, MONTANT) VALUES (1, 2, 2018, 1000); INSERT INTO DECOMPTE (ID, MOIS, ANNEE, MONTANT) VALUES (2, 7, 2018, 2000); INSERT INTO DECOMPTE (ID, MOIS, ANNEE, MONTANT) VALUES (3, 1, 2019, 3000); INSERT INTO DECOMPTE (ID, MOIS, ANNEE, MONTANT) VALUES (4, 5, 2019, 4000);
La plage de recherche pour ne récupérer que l'ID 2 et 3 compris dans cette plage:
DEBUT_MOIS=5 - DEBUT_ANNEE=2018
FIN_MOIS=4 - FIN_ANNEE=2019
J'ai utiliser l'instruction BETWEEN :
Et avec une autre variante sans le between:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT * FROM DECOMPTE WHERE ((MOIS BETWEEN 5 AND 4) AND (ANNEE BETWEEN 2018 AND 2019));
Malheureusement je n'obtiens pas le résultat escompter probablement à cause des deux mois et des deux année ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT * FROM DECOMPTE WHERE ((MOIS>=5 AND ANNEE>=2018) AND (MOIS<=4 AND ANNEE<=2019)) ;
En comptant SVP sur votre aide.
Partager