#1 Le 14/05/2008, à 15:54
- legml
[RESOLU] Calcul de date dans Base OOo
Bonjour
J'ai, dans une base de données, une table avec ses divers champs dont un champ "date".
Une requête permet de trier les enregistrements par date croissante. Facile ensuite d'extraire les enregistrements de la date A à la date B, pour un mois précis par exemple. Mais cela implique des préparatifs et des manipulations.
Je cherche une solution différente à ce problème de tri :
batir une requête qui permette d'extraire les seuls enregistrements d'un mois précis en indiquant directement le nom ou le numéro du mois.
J'imagine que la solution pourrait passer par la création, dans une requête, d'un champ fictif contenant une formule de traitement du champ "date" (cette formule extrayant la valeur du mois). ... mais je ne trouve pas !
Merci à celui ou celle qui pourrait m'indiquer une piste.
Dernière modification par legml (Le 16/06/2008, à 13:42)
Vétéran des systèmes Pick
et maintenant : Ubuntu 10.04
Hors ligne
#2 Le 14/05/2008, à 16:13
- phavet
Re : [RESOLU] Calcul de date dans Base OOo
Bonjour
Des vieux souvenirs de programation sous Oracle :
On formate la date avec un masque "MM", le résultat est un champ caractère
On convertit ce champ en nombre sur lequel on peut trier
En syntaxe Oracle ça donnait qqch du genre :
order by tonumber(format(Date_base,'MM')
C'est pas joli, mais ça marchait bien.
le tonumber est là parce qu'on n'est jamais sûr que le format MM met un zéro devant.
Faire et défaire c'est toujours travailler.
Tour assemblée, Asus F3Sc, Acer Aspire 5715z, Asus 1201HA ; Karmic (1) , Lucid (2), Natty(1)
Hors ligne
#3 Le 10/06/2008, à 15:01
- legml
Re : [RESOLU] Calcul de date dans Base OOo
Bonjour
Merci à phavet pour sa réponse que je ne parviens pas à appliquer dans OOBase. Auriez-vous qq précisions à me donner ?
Plus généralement, je voudrais relancer ma questions en la reformulant :
Dans OOBase : comment extraire le paramètre "mois" (p.e. 12 pour décembre) d'un champ au format "date". La valeur extraite doit servir à trier ou à sélectionner les enregistrements répondant à la condition "mois=12" (ce n'est q'un exemple).
Vétéran des systèmes Pick
et maintenant : Ubuntu 10.04
Hors ligne
#4 Le 10/06/2008, à 15:59
- denis56
Re : [RESOLU] Calcul de date dans Base OOo
Salut
Dans calc la fonction c'est =mois(numéro de série) où n° de série est le numéro exact (imbuvable) renvoyé par un champ date jj/mm/aa.
J'imagine mal Base utiliser des fonctions différentes sur ces données de dates
Mais attention si ta base porte sur 2 années ou +, le champ affichera 12 mais ne différenciera plus les ""deux décembre"" celui de 2008 et celui de 2007
Dernière modification par denis56 (Le 10/06/2008, à 16:00)
Debian Jessie souvent, Xubuntu parfois,
Bénévole @ Rhizomes
Hors ligne
#5 Le 10/06/2008, à 16:02
- phavet
Re : [RESOLU] Calcul de date dans Base OOo
Je viens de jouer avec oo.base et j'ai trouvé ça :
http://wiki.services.openoffice.org/wiki/Database
et plus précisément ça :
http://wiki.services.openoffice.org/wik … Procedures
Je crois que cela va répondre à tes questions.
Bonne continuation.
Faire et défaire c'est toujours travailler.
Tour assemblée, Asus F3Sc, Acer Aspire 5715z, Asus 1201HA ; Karmic (1) , Lucid (2), Natty(1)
Hors ligne
#6 Le 15/06/2008, à 14:59
- legml
Re : [RESOLU] Calcul de date dans Base OOo
Bonjour
et merci pour votre aide. La solution au problème posé est effectivement toute simple :
SELECT "ID", "DATE", "DEP", "TAUX" FROM "Table1" WHERE MONTH("DATE") = '12'
et la requête extrait tous les articles (=enregistrements) avec mois=12 (toutes années confondues bien sûr).
A la prochaine.
Vétéran des systèmes Pick
et maintenant : Ubuntu 10.04
Hors ligne