Requête sql / base

Bonjour,

J’essaye d’effectuer une requête sql dans Base de libre Office.
Je voudrais faire une requête qui donnerai uniquement les colonnes dans un intervalle de deux mois à partir de maintenant.

Voilà ma requête :

select country, sum(amount)
from customers inner join payments on customers.customernumber = payments.customerNumber
where PaymentDate >= now()-interval 2 month
group by country;

Ma requête fonction dans MySQL mais sur libreOffice, j’ai l’erreur "Erreur syntaxe dans l’expression SQL " qui s’affiche.

je sais que Now() existe mais je ne connais pas la fonction pour calculer l’intervalle dans LibreOffice.
Est-ce que quelqu’un pourrait me dire si il y a une fonction dans LibreOffice pour calculer un intervalle ou quel est la bonne syntaxe.
J’ai fait que chercher mais je n’arrive vraiment pas à trouver la bonne syntaxe. Est-ce que quelqu’un peut m’aider?

D’avance merci.

Cordialement.

Bonjour

Les fonctions permettant de calculer sont DATEDIFF et CURDATE ou CURRENT_DATE. La syntaxe est différente selon que tu utilises une base au format Hsqldb (voir l’aide):

SELECT  "DateNaissance" FROM "Table1"
WHERE DATEDIFF('dd', "DateNaissance", CURDATE( )) < 60

ou Firebird (voir l’aide).

SELECT  "DateNaissance" FROM "Table1"
WHERE DATEDIFF(day, "DateNaissance", CURRENT_DATE) <= 60

Cordialement

Merci pour la réponse mais je ne comprends pas très bien, dans la requête :

SELECT “DateNaissance” FROM “Table1”
WHERE DATEDIFF(‘dd’, “DateNaissance”, CURDATE( )) < 60
Quand j’essaye la requete j’ai un message d’erreur : Incorrect parameter count in the call to native function ‘DATEDIFF’

à quoi correspond ‘dd’.

J’ai peut-être mal expliqué mon problème. PaymentDate représente une table qui contient des dates et je veux sélectionner uniquement les colonnes pour les 2 derniers mois à partir d’aujourd’hui mais la requête doit aussi fonctionner peu importe la date du jour.
Par exemple dans si on est le 15-05-20, ça doit me donner les deux mois précédents à partir de cette date.
J

Merci encore pour l’aide.

Tu n’as toujours pas précisé ton moteur mais je déduis de l’exemple essayé que c’est hsqldb ?

à quoi correspond ‘dd’.

euh… c’est expliqué dans le lien indiqué dans ma réponse 'dd'='day',

la requête doit aussi fonctionner peu importe la date du jour.

ben oui, avec CURDATE() on calcule la différence par rapport à la date du jour, pas une date fixe.

Ma base de donnée LibreOffice base se connecte à une base de donnée MySQL.
c’est ni hsqldb, ni Firebird.
Est-ce que vous savez comment faire avec MySQL

Désolé, @Mysql c’est le début de la question…

'effectuer une requête sql dans Base de libre Office

qui m’a fourvoyé… cela dit le pseudo aurait dû m’alerter :slight_smile:

Alors avec une connexion à MySql c’est en principe la syntaxe MySql qu’il faut utiliser. As-tu validé Exécuter directement l'intruction SQL (dernier bouton à droite dans la barre d’outils de l’éditer de requête en mode SQL) ?

Je ne peux tester de mon côté car je réponds de mémoire sans environnement…

Cordialement

Merci beaucoup ça marche.
Excellent