Bonjour,
J’ai voulu migré la base de données que j’avais créée pour mon association vers Base firebird, malheureusement j’ai deux requêtes qui m’ont produit des erreurs. Donc je suis revenu en arrière et j’essaie de réécrire une nouvelle base de données sur Base Firebird. Il s’agit de deux requêtes sur le calcul de l’age des adhérents et sur la moyenne d’âge. Après avoir traduit quelques pages du livre Firebird 2.5 Language Référence j’ai essayé de réécrire les requêtes pour firebird, en suivant les instruction du livre. Mais sincèrement je n’y arrive pas. Je vous donne la requête pour le calcul de l’age.
SELECT “Annee”, “Prenom”, “Nom”, “DateNaissance”, IIF( MONTH( CURRENT_DATE ) < MONTH( “DateNaissance” ), CAST( ( YEAR( CURRENT_DATE ) - YEAR( “DateNaissance” ) - 1 ) AS “VARCHAR” ) || ’ ans’, IIF( MONTH( CURRENT_DATE ) > MONTH( “DateNaissance” ), CAST( ( YEAR( CURRENT_DATE ) - YEAR( “DateNaissance” ) ) AS “VARCHAR” ) || ’ ans’, IIF( DAY( CURRENT_DATE ) >= DAY( “DateNaissance” ), CAST( ( YEAR( CURRENT_DATE ) - YEAR( “DateNaissance” ) ) AS “VARCHAR” ) || ’ ans’, CAST( ( YEAR( CURRENT_DATE ) - YEAR( “DateNaissance” ) - 1 ) AS “VARCHAR” ) || ’ ans’ ) ) ) “Age” FROM “AdherentsJDV” WHERE “Annee” = 2016
Lorsque je mets un ? WHERE la base plante. Sinon j’ai cette erreur «Code d’erreur: 1
firebird_sdbc error:
*Dynamic SQL Error
*SQL error code = -104
*Token unknown - line 1, column 56
*MONTH
caused by
‘isc_dsql_prepare’
C’est idem pour la moyenne d’âge
SELECT AVG( YEAR( NOW( ) ) - ( YEAR( “DateNaissance” ) ) ) “MoyenneAge” FROM “AdherentsJDV” WHERE “Annee” = ‘2016’
J’ai la même erreur
Code d’erreur: 1
firebird_sdbc error:
*Dynamic SQL Error
*SQL error code = -104
*Token unknown - line 1, column 13
*YEAR
caused by
‘isc_dsql_prepare’
Si vous pouviez m’aider à réécrire ces 2 requêtes Je vous remercie à l’avance