Rédaction de la requête SQL

Last modified by Aurelie Bertrand on 2024/07/01 08:48


Pour la rédaction de votre requête SQL, deux choix s'offrent à vous : la rédaction manuelle de la requête SQL ou la génération graphique du SQL via l'assistant SQL. 

Rédaction manuelle de la requête SQL

Vous avez la possibilité de rédiger directement votre requête dans le champ Requête SQL.

La requête peut inclure des conditions utilisant des variables. Les variables permettent de personnaliser les graphes pour afficher uniquement les données de l'utilisateur connecté. Vous pouvez utiliser comme variables tous les attributs présents dans le serveur LDAP. A l'affichage du graphe, la variable est remplacée par sa valeur dans le serveur LDAP.
Pour définir une condition utilisant une variable, utilisez la syntaxe suivante : where Nom_colonne Opérateur {variable}.
Par exemple, where Nom = ${user.displayName}.
A l'affichage du graphe, la variable ${user.displayName} est remplacée par le nom de l'utilisateur connecté (valeur de l'attribut displayname dans LDAP).

Génération graphique de la requête SQL via l'assistant SQL

Vous pouvez également consulter un exemple détaillé sur la page Exemple complet de création d'une requête.

Vous pouvez générer graphiquement votre requête SQL via l'assistant SQL. Pour ce faire cliquez sur Assistant SQL....La boîte Assistant de création de requête SQL s'affiche, la fenêtre dispose de trois onglets correspondant à trois étapes :

  • Étape 1 : Sélection des tables et application des jointures
  • Étape 2 : Sélection des colonnes et application des filtres
  • Étape 3 : Prévisualisation de la requête générée

Étape 1 : Sélection des tables et application des jointures

Sur la gauche l'ensemble des tables et des vues de la base sélectionnée sont disponibles. L'objectif de cette fenêtre consiste à créer un schéma relationnel. Vous allez pouvoir :

  • sélectionner un ensemble de tables
  • appliquer des jointures entre les tables sélectionnées
  • appliquer des alias sur les tables

Les actions disponibles sont les suivantes :

OpérationRéalisation
Ajouter une tableGlisser-déposer la ou les table(s) contenant les informations souhaitées sur le panneau de droite.
Supprimer une tableLorsqu'une table est déposée sur le panneau de dessin, faites un clic droit sur l'entête de la table, puis cliquez sur Supprimer la table.
Ajouter une jointurePour ajouter une jointure entre deux tables figurant sur le panneau de dessin, faites un clic gauche sur la colonne sur laquelle vous souhaitez appliquer la jointure, puis faites un second clic gauche sur une autre colonne d'une table différente. Une jointure entre les deux colonnes va apparaître.
Supprimer une jointureSur une jointure déjà en place, faites un clic droit sur le symbole central, puis cliquez sur Supprimer la jointure.
Changer le type de jointureSur une jointure déjà en place, faites un clic droit sur le symbole central, puis cliquez sur Changer le type de jointure. Une liste apparaît, sélectionnez le type de jointure souhaité.
Changer le sens d'une jointureSur une jointure déjà en place, faites un clic droit sur le symbole central, puis cliquez sur Inverser le sens de lecture.
Ajouter un alias de tableLorsque qu'une table est déposée sur le panneau de dessin, faites un clic droit sur l'entête de la table, puis cliquez sur Ajouter ou éditer un alias de table. L'alias de table va apparaître en dessous du nom de la table.
Ajouter un alias de colonneFaites un clic droit sur une colonne puis cliquez sur Ajouter ou éditer un alias. L'alias de la colonne va apparaître à droite de la colonne.
Ajouter une agrégation sur une colonneFaites un clic droit sur une colonne puis cliquez sur Ajouter une agrégation. Sélectionnez ensuite le type d’agrégation souhaité.

Légende :

SymboleSignification
studio_guide_fr (1)_html_7c38d5ead868e443.pngCatalogue chargé
 Schéma chargé
studio_guide_fr (1)_html_1b2101d770d15006.pngTable non sélectionnée
studio_guide_fr (1)_html_35ccaeee2cf9af09.pngTable sélectionnée mais ne possédant pas de jointure
studio_guide_fr (1)_html_5f68bc4ca08358eb.pngTable sélectionnée et possédant au moins une jointure
studio_guide_fr (1)_html_8983fd90ab0c7da1.pngVue non sélectionnée
studio_guide_fr (1)_html_6402fdf5d98750c0.pngVue sélectionnée mais ne possédant pas de jointure
studio_guide_fr (1)_html_8250781a37bf5982.pngVue sélectionnée et possédant au moins une jointure
studio_guide_fr (1)_html_ac9e30213b8b2e61.jpgJointure à gauche (LEFT JOIN) 
studio_guide_fr (1)_html_60d7bf5424600e25.jpgJointure à droite (RIGHT JOIN) 
studio_guide_fr (1)_html_4623f3cb547cb676.jpgJointure complète (FULL JOIN) 
studio_guide_fr (1)_html_fabd1741aa0e37d.jpgExemple de table :
  • employes est le nom de la table
  • MesEmployes est l'alias de la table
  • les colonnes employe_id et entreprise_id sont en gras car elles possèdent au moins une jointure
  • la colonne matricule possède un alias de colonne : (MatriculeEmp)
  • La colonne salaire possède une agrégation : [Somme]

Quand votre schéma est terminé pour poursuivre la création de la requête cliquez sur Suivant >.

Étape 2 : Sélection des colonnes et application des filtres

Cette nouvelle étape vous propose trois tableaux :

  • le tableau situé à gauche contient l'ensemble des colonnes disponibles dans le schéma que vous avez crée
  • le tableau situé en haut à droite va contenir les colonnes que vous souhaitez afficher
  • le tableau situé en bas à droite va contenir les colonnes sur lesquelles vous souhaitez appliquer un filtre

Les actions disponibles sont les suivantes :

OpérationRéalisation
Sélectionner une colonneGlissez-déposez la ou les colonnes(s) souhaitée(s) sur le tableau situé en haut à droite.
Filtrer une colonneGlissez-déposez la ou les colonnes(s) souhaitée(s) sur le tableau situé en bas à droite. Une fenêtre va s'afficher, sélectionnez le type de filtre que vous souhaitez appliquer.

Lorsque vous avez terminé la sélection et le filtrage de vos colonnes, cliquez sur Suivant >.

Étape 3 : Prévisualisation de la requête générée :

  • Cette étape vous permet de prévisualiser la requête générée et le cas échéant de la modifier. Une fois votre requête finalisée, cliquez sur Terminer.

Attention: Si vous modifiez la requête générée par l'assistant SQL, les modifications effectuées ne seront pas prises en compte lors de votre prochaine utilisation de l'assistant SQL.

Configuration du mode incrémental

La source de données SQL supporte un mode incrémental permettant de minimiser les requêtes vers la base de données. 

  1. Cliquez sur Options... dans la boite de configuration de la source de données.
  2. Cochez la case Mode données incrémentales. Un message d'avertissement vous informe que :
    • Le mode incrémental utilise une colonne de référence qui identifie chaque enregistrement du résultat de manière unique (par exemple un AUTO_INCREMENT, un identifiant, une date...)
    • Le requête doit être triée sur cette colonne de référence (et contenir cette colonne)
    • La requête doit contenir une clause WHERE sur cette colonne comparant sa valeur à une variable ${LASTVAL}. Exemple : where colonne > '${LASTVAL}'
    • Le mode incrémental a été prévu pour traiter incrémentalement des grand volume de données, et n'est pas optimal pour de faibles volumes.
    • Si la requête est modifiée à l'avenir, l'historique précédemment accumulé dans le cube sera invalidé. ${LASTVAL} sera évalué à 0 et, selon la clause WHERE spécifiée, l'intégralité des données sera rapatriée de la base de données.
  3. Saisissez le nom de la colonne qui sera utilisée comme référence incrémentale dans le champ Colonne de référence.
  4. Ajoutez une clause WHERE à votre requête SQL qui teste si la colonne de référence est supérieure à '${LASTVAL}'. La syntaxe exacte peut dépendre de votre base de données et du type de la colonne. La comparaison est faite de manière lexicographique, il est préférable donc que la comparaison soit faite via une chaîne de caractère.