Sorry, Le 7 août 2008 15:10, fricard.claude <[EMAIL PROTECTED]> a écrit :
> Yves, Bernard > oK avec nb2: c'est effectivement sur chaque enregistrement de la Table MON > ANNUAIRE, que je souhaite "Updater" l'age calculé. cette commande ne > fonctionne pas: > UPDATE "MON ANNUAIRE" SET "age" = DATEDIFF( 'year', NOW( ), "date de > naissance" ), "date de naissance" sans le from "mon annuaire" ça ira mieux... copier/coller d'un select et ai oublié d'enlever le from ;-) Yves > FROM " MON ANNUAIRE" > avec ce résultat : (pb de syntaxe?) > > > -------------------------------------------------------------------------------- > Statut SQL: 37000 > Code d'erreur: -11 > > Unexpected token FROM, requires = in statement [ UPDATE "MON ANNUAIRE" SET > "age" = DATED > "] > > > -------------------------------------------------------------------------------- > > > Questions : > 1.. dans une requête SQL est-ce que toute commande doit commencer par > SELECT ? (contrairement à MySQL) > 2.. Est-ce SQL était incontournable pour faire ce type de calcul ? ce > langage SQL m'intéresse mais pour mes "élèves" au club (retraités pour la > plupart ...) ce langage SQL sera tout à fait hermétique ... > On va y arriver ....merci à vous > Claude > > ----- Original Message ----- > From: yves dutrieux > To: [email protected] > Sent: Thursday, August 07, 2008 12:33 PM > Subject: Re: [users-fr] OOo Base > > > Bonjour, > > Le 7 août 2008 11:07, Bernard Ribot <[EMAIL PROTECTED]> a écrit : > > > Bonjour > > C'est plutôt un UPDATE qu'il faut utiliser, avec une clause WHERE pour > > déterminer le tuple sur lequel tu veux faire la modif. > > > Bernard a raison. > > et dans notre cas, ça deviendra (pas testé): > > update "MON ANNUAIRE" set "age" = datediff('year',now(),"date de > naissance") > > nb1 : si tu veux affecter la valeur à un seul enregistrement de ta base, > il > faut ajouter une clause "where" derrière. > nb2 : Je préfère de loin utiliser une requête pour ce genre de calcul > parce > que tu seras obligé de faire ton "update" juste avant d'utiliser les > valeurs > (si tu veux un résultat cohérent). Dans une requête, le calcul se fait au > moment où tu utilises la requête (donc résultat toujours CORRECT). Dans ta > table, le résultat est CORRECT uniquement si tu lances l'update JUSTE > avant > d'utiliser les valeurs.... > > C'est que mon avis perso ;-) > > Yves > > > > > Bernard > > > > fricard.claude a écrit : > > > >> Yves, > >> ça marche ! super > >> Si je peux abuser de ton temps et tes connaissances est-ce que je peux > >> assigner cette valeur mon-age à un élément de ma table MON ANNUAIRE ? > >> genre: SELECT "age" FROM "MON ANNUAIRE" = mon_age > >> je n'ai pas trouvé réponse dans les différentes docs: Sql, Mysql, > hsqldb > >> Merci encore pour ton aide > >> Claude > >> > >> ----- Original Message ----- From: yves dutrieux To: > >> [email protected] Sent: Wednesday, August 06, 2008 2:15 AM > >> Subject: Re: [users-fr] OOo Base > >> > >> > >> Bonsoir Claude, > >> > >> Le 5 août 2008 14:35, fricard.claude<[EMAIL PROTECTED]> a > écrit > >> : > >> > >> > Yves, > >> > Merci pour tes indications mais en entrant cette commande SQL : > >> > Une table MON ANNUAIRE avec un champ: date de naissance (type de > champ > >> => > >> > date) > >> > > >> > > >> > > >> > -------------------------------------------------------------------------------- > >> > > >> > SELECT "date de naissance" FROM "MON ANNUAIRE" > >> > DATEDIFF(YEAR,DATE(),"date de naissance") as mon_age > >> > j'obtiens : Unexpected token: ( in statement [SELECT "date de > >> naissance" > >> > FROM "MON ANNUAIRE" > >> > DATEDIFF(YEAR,DATE(] > >> > >> essaye : select datediff('year',now(),"date de naissance") as mon_age, > >> "date > >> de naissance" from "MON ANNUAIRE" > >> > >> Yves > >> > >> > > >> > La commande SELECT "date de naissance" .... seule passe bien mais il > >> doit y > >> > avoir un pb dans la syntaxe de la commande DATEDIFF() , l'argument > >> string == > >> > Year est-il correct ? est-ce qu'une telle fonction s'exécute > >> directement en > >> > Sql ou avec un autre outil ? je ne suis pas très clair la-dessus ! > >> > Merci de m'éclairer. > >> > Claude > >> > ----- Original Message ----- > >> > From: yves dutrieux > >> > To: [email protected] > >> > Sent: Monday, August 04, 2008 5:10 PM > >> > Subject: Re: [users-fr] OOo Base > >> > > >> > > >> > Bonjour, > >> > > >> > Le 2 août 2008 20:03, Bernard Ribot<[EMAIL PROTECTED]> a > écrit : > >> > > >> > > Bonsoir > >> > > Dans OOo Base tu peux écrire des requêtes SQL (Outils > SQL). > >> > > Bernard > >> > > > >> > > fricard.claude a écrit : > >> > > > >> > > Où pourrais-je trouver de l'info, et des exemples de calculs de > >> champs > >> > >> dans une requête exemple : calculer l'âge de personnes > connaissant > >> leur > >> > date > >> > >> de naissance; genre d'expression : (Date() - date de naissance) > >> /365. > >> > > > >> > > Il faut éditer ta requête en mode SQL (clic droit - editer en sql > ?) > >> > et inclure la fonction sql suivante : > >> > DATEDIFF(string, datetime1, > >> > datetime2)[2<http://hsqldb.org/doc/guide/guide.html#ftn.posthyper > > > >> > ] > >> > > >> > returns the count of units of time elapsed from datetime1 to > >> datetime2. > >> > The > >> > string indicates the unit of time and can have the following values > >> > 'ms'='millisecond', 'ss'='second','mi'='minute','hh'='hour', > >> 'dd'='day', > >> > 'mm'='month', 'yy' = 'year'. Both the long and short form of the > >> strings > >> > can > >> > be used. > >> > donc dans ton cas: DATEDIFF(year,date(),date_de_naissance) as > >> Mon_agepour > >> > retrouver l'âge dans un nouveau champs Mon_age.nb : j'ai pas testé > >> donc, > >> > voir si la fonction date() existe bien et retourne bien une valeur > >> > datetime...Yves > >> > > >> > > >> > > > >> > >> Avec Access il y a des requêtes de mise à jour de données a t-on > la > >> > même > >> > >> chose avec OOo base ? > >> > >> Les fonctions et constantes disponibles sont-elles listées > quelque > >> > partje > >> > >> n'ai rien trouvé dans les tutoriels jusqu'à présent. > >> > >> merci d'avance > >> > >> Claude > >> > >> > >> > >> > >> > >> > >> > > > >> > > > >> --------------------------------------------------------------------- > >> > > To unsubscribe, e-mail: [EMAIL PROTECTED] > >> > > For additional commands, e-mail: [EMAIL PROTECTED] > >> > > > >> > > > >> > > >> > > >> > -- > >> > web site : http://www.molenbaix.com > >> > > >> > >> > >> > >> -- web site : http://www.molenbaix.com > >> > >> > >> > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > -- > web site : http://www.molenbaix.com > -- web site : http://www.molenbaix.com
