bonjour
est il possible avec libo de créer des CTE en mode ébauche de requêtes ?
l'éditeur ne semble pas reconnaitre la clause WITH
HSQL et Firebird l'implémentent tous les deux en natif, alors je me dis que c'est peut-être intégré aussi dans le moteur libo ?
merci de votre aide
[Résolu] Requête récursive CTE (clause WITH)
Modérateur : Vilains modOOs
Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
-
- Membre lOOyal
- Messages : 29
- Inscription : 07 févr. 2009 17:30
[Résolu] Requête récursive CTE (clause WITH)
Dernière modification par jlf le 12 mars 2021 14:56, modifié 1 fois.
LibreOffice 6.3 (boulot) et 7.0.5.2 (perso) Windows 10
-
- Grand Maître de l'OOffice
- Messages : 16960
- Inscription : 03 mars 2006 16:02
- Localisation : Venise verte
Re: requete recursive CTE
Bonjour,
En HSQLDB, la clause SQL qui s'en approche est WHERE si j'ai bien compris ce que tu veux faire.
La correspondance des instructions entre HSQLDB et Firebird, du moins la version embarquée dans LibreOffice, est visible ici :
//wiki.documentfoundation.org/Documentation/HowTo/MigrateFromHSQLDB/fr
et toutes les instructions SQL dans Firebird là :
//www.firebirdsql.org/en/sql-conformance/
Compte-tenu des bogues à résoudre, Firebird est repassé en "expérimental" depuis LibO 6.4 (à lire dans la documentation de cette version)
En HSQLDB, la clause SQL qui s'en approche est WHERE si j'ai bien compris ce que tu veux faire.
La correspondance des instructions entre HSQLDB et Firebird, du moins la version embarquée dans LibreOffice, est visible ici :
//wiki.documentfoundation.org/Documentation/HowTo/MigrateFromHSQLDB/fr
et toutes les instructions SQL dans Firebird là :
//www.firebirdsql.org/en/sql-conformance/
Compte-tenu des bogues à résoudre, Firebird est repassé en "expérimental" depuis LibO 6.4 (à lire dans la documentation de cette version)
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
-
- Membre lOOyal
- Messages : 29
- Inscription : 07 févr. 2009 17:30
Re: requete recursive CTE
je n'ai pas été très clair, excuse moijeanmimi a écrit :En HSQLDB, la clause SQL qui s'en approche est WHERE si j'ai bien compris ce que tu veux faire
je ne connais pas HSQL mais il implémente bien les CTE sql en natif, voici un exemple de discussion sur le sujet :
//stackoverflow.com/questions/44472280/cte-based-sequence-generation-with-hsqldb
on peut remplacer souvent par du where ou des jointures, mais c'est beaucoup moins lisible et efficace
Firebird, que je connais mieux, l'implémente au moins depuis la 2.5
//www.firebirdsql.org/refdocs/langrefupd2 ... select-cte
(3ème chap "Common Table Expressions (“WITH ... AS ... SELECT”)")
donc je me disais que le moteur libo avait probablement repris ça, peut-être dans une syntaxe spécifique, mais je trouve rien et WITH n'est pas reconnu dans l'éditeur syntaxique de l'ébauche sql
en tous cas merci de tes infos
edit :
pour ceux qui connaissent mal les CTE et seraient intéressés il y a un excellent article en français de Brouard sur un site ami de celui ci :
//sqlpro.developpez.com/cours/sqlserver/cte-recursives/
@Bidouille : non, je n'ai pas vérifié s'il est déjà dans la liste des références, désolé
LibreOffice 6.3 (boulot) et 7.0.5.2 (perso) Windows 10
-
- IdOOle de la suite
- Messages : 25181
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: requete recursive CTE
Salut,
Il est toujours possible de créer des requêtes en mode SQL direct.
https://beaussier.com/sections/viewtopic.php?f=8&t=1577 (chapitre H).
La documentation officielle montre que la clause WITH n'est pas gérée.
Il est toujours possible de créer des requêtes en mode SQL direct.
https://beaussier.com/sections/viewtopic.php?f=8&t=1577 (chapitre H).
Tout dépend de la version HSQLDB. Dans celle embarquée par OpenOffice ou ses dérivés, c'est la 1.8.jlf a écrit :je ne connais pas HSQL mais il implémente bien les CTE sql en natif
La documentation officielle montre que la clause WITH n'est pas gérée.
-
- Membre lOOyal
- Messages : 29
- Inscription : 07 févr. 2009 17:30
Re: requete recursive CTE
OK merci de l'info qui implique je suppose que les CTE ne sont pas non plus implantées sur les Firebirds intégrés, même sous une syntaxe exotiqueDude a écrit :Tout dépend de la version HSQLDB. Dans celle embarquée par OpenOffice ou ses dérivés, c'est la 1.8.
La documentation officielle montre que la clause WITH n'est pas gérée.
c'est une grosse carence, vraiment ...
LibreOffice 6.3 (boulot) et 7.0.5.2 (perso) Windows 10
-
- IdOOle de la suite
- Messages : 25181
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: requete recursive CTE
Base peut très bien s'utiliser avec un SGBD externe (exemple sous Windows avec MySQL).jlf a écrit :c'est une grosse carence, vraiment ...
Pour le HSQL, il y a la demande 121837 pour l'intégration en version 2.x (5 voix à ce jour).
Faut voter !
-
- Grand Maître de l'OOffice
- Messages : 16960
- Inscription : 03 mars 2006 16:02
- Localisation : Venise verte
Re: requete recursive CTE
Je viens de tester les exercices 1, 2, 3 et 4 de cette page :
//sqlpro.developpez.com/cours/sqlserver/cte-recursives/
sur une Base Firebird.
Il y a bien aussi des exemples de CTE dans la partie Firebird de ce site.
Les requêtes SQL avec WITH fonctionnent correctement et affichent les résultats attendus.
//sqlpro.developpez.com/cours/sqlserver/cte-recursives/
sur une Base Firebird.
Il y a bien aussi des exemples de CTE dans la partie Firebird de ce site.
Les requêtes SQL avec WITH fonctionnent correctement et affichent les résultats attendus.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
-
- Membre lOOyal
- Messages : 29
- Inscription : 07 févr. 2009 17:30
Re: requete recursive CTE
effectivement c'est moi qui me suis mélangé les pinceauxjeanmimi a écrit : Les requêtes SQL avec WITH fonctionnent correctement et affichent les résultats attendus.
d'abord j'ai testé en HSQL, évidemment sans succès, puis je suis passé à Firebird suite à la remarque de Dude sur la version 1.8 mais sans tilter sur sa référence au sql direct
je viens enfin de voir grace à vos efforts qu'il est nécessaire, même si je ne suis pas sûr d'en comprendre la logique
bon, je suppose que ça peut en gros se résumer à : le moteur libo contient des trucs que l'analyseur syntaxique ne connait pas
en tous cas le moteur libo a bien repris les CTE de Firebird, et ça m'arrange considérablement même si les bugs Fb embarqué effraient un peu peur pour lancer une appli libo dessus en réel
merci beaucoup à vous deux
LibreOffice 6.3 (boulot) et 7.0.5.2 (perso) Windows 10