Tous les produits
Search
Centre de documentation

Quick BI:SQL personnalisé

Dernière mise à jour :Aug 10, 2026

Créez des jeux de données pour des logiques ou des modèles complexes en rédigeant des requêtes SQL personnalisées. Les requêtes ad hoc prennent également en charge le passage de paramètres pour les scénarios d'analyse dynamique.

Prérequis

Vous avez établi une connexion à une source de données. Pour plus d'informations, consultez la rubrique Connexion à une source de données.

Limites

Les sources de données API ne prennent pas en charge les requêtes ad hoc.

Saisir du code SQL

Plusieurs méthodes permettent de créer une requête ad hoc.

  1. Accédez à la page des requêtes ad hoc.

    • Méthode 1 : Sur la page Data Sources, cliquez sur Create datasets in SQL dans le coin supérieur droit.image

    • Méthode 2 : Dans le canevas du relational model de l'éditeur de jeux de données, sélectionnez une source de données. Si aucune table de données n'est présente sur le canevas, cliquez sur Click to use SQL code to create a dataset sur le canevas ou sur Create table with SQL code dans le panneau latéral gauche.image

    • Méthode 3 : Dans le canevas du physical modeling de l'éditeur de jeux de données, cliquez sur Create table with SQL code dans le panneau latéral gauche.

      image

  2. Après avoir saisi le code SQL, cliquez sur Run.

    image

    L'exemple de code suivant illustre une instruction SQL type :

    SELECT  report_date,
            or*******el,
            shipping_type,
            area,
            price,
            order_number
    from    company_sales_record
    where   $expr{report_date :report_date}
    and     $expr{order_level :order_level}
    and     $expr{order_number :or********er}

    Une fois l'exécution de la requête terminée avec succès, vous pouvez prévisualiser les résultats dans l'onglet Result.image

  3. Cliquez sur Create Dataset pour enregistrer le jeu de données créé à partir de la requête ad hoc.

Modifier le code SQL

Vous pouvez modifier le code SQL de trois manières :

  • Cliquez sur l'icône image située à droite de la table cible.image

  • Cliquez sur la table cible dans le canevas. Dans la section Table Details en bas de page, cliquez sur Edit SQL.image

  • Cliquez sur l'icône image à droite de la table cible, puis sélectionnez Edit SQL.

    image

Syntaxe SQL

  • Les requêtes ad hoc prennent principalement en charge les instructions SELECT. Les instructions INSERT, UPDATE, DELETE et les procédures stockées ne sont pas prises en charge.

  • La syntaxe de la requête doit être conforme à celle de la base de données de votre source de données. Par exemple, les sources de données MySQL nécessitent une syntaxe de requête MySQL. Les syntaxes spécifiques à certaines bases de données, telles que find() et findone() dans MongoDB, ne sont pas prises en charge dans Quick BI. Utilisez des instructions SELECT pour interroger les données via des requêtes ad hoc.

  • Pour ajouter des commentaires à une requête ad hoc, utilisez le format -- Commentaire. Un espace est requis après les deux tirets (--).

    image

    L'exemple de code suivant illustre une instruction SQL type :

    SELECT  area,  -- Area
            price  -- Price  
    from    company_sales_record
  • Si vous joignez plusieurs tables dans une requête ad hoc, assurez-vous d'utiliser correctement les alias de table et les alias de colonne. La syntaxe des alias peut varier selon les bases de données.

  • Une requête ad hoc n'impose aucune limite de lignes, mais elle ne peut pas dépasser 65 536 caractères. Si nécessaire, divisez ou optimisez la requête, ou créez plusieurs jeux de données et joignez-les.

Remarque
  • Quick BI envoie le SQL du jeu de données à la base de données pour exécution. Le délai d'expiration de la requête est de 5 minutes. Si aucune donnée n'est renvoyée dans ce délai, une erreur de temporisation se produit.

  • Si une requête expire en moins de 5 minutes, la cause peut résider dans un paramètre de temporisation configuré sur vos équipements réseau, tels qu'un SLB, ou dans une politique de pare-feu bloquant la demande de requête.

Espaces réservés

Quick BI prend en charge deux types d'espaces réservés pour le passage de paramètres en SQL : les espaces réservés de valeur et les espaces réservés d'expression.

Type

Description

Cas d'utilisation

Format

Espace réservé de valeur

Transmet une valeur unique ou un ensemble de valeurs depuis un contrôle de requête sur un tableau de bord.

Remarque

Pour les espaces réservés de date, vous devez sélectionner un format de date spécifique afin de contrôler le format de la valeur transmise.

Convient à la plupart des scénarios de passage de paramètres.

'$val{nom_espace_reserve}'

Espace réservé d'expression

Transmet une condition depuis un contrôle de requête sur un tableau de bord.

Permet aux utilisateurs de modifier la méthode de filtrage sur un tableau de bord en transmettant l'intégralité de la condition de filtre à l'instruction SQL.

Par exemple, dans le tableau de bord illustré ci-dessous, un utilisateur peut définir la condition sur Profit > 50 ou Profit < 50. L'intégralité de la condition, y compris l'opérateur, doit être transmise à l'instruction SQL.Paramètres de transmission

$expr{nom_champ_physique:nom_espace_reserve}

Configuration

Rédigez votre instruction SQL et ajoutez des espaces réservés en fonction de vos besoins métier.

  1. Sur la page de l'éditeur SQL, cliquez sur Parameter Settings.

    image

  2. Dans le panneau Parameter Settings, configurez les espaces réservés et cliquez sur OK.

    image

    Pour plus d'informations sur les éléments de configuration, consultez la rubrique Création d'un jeu de données.

    Remarque

    Si un espace réservé est utilisé dans une clause SELECT, vous devez lui attribuer une valeur par défaut globale.

    Par exemple, vous ajoutez un espace réservé nommé profit_range dans la clause SELECT lors de la création d'un jeu de données, comme illustré dans le code suivant :

    SELECT report_date, order_level, shipping_type,price,order_number,area,
     case when profit_amt< ${profit_range} then 'Loss' 
     when profit_amt> ${profit_range} then 'Profit'
     else 'Break-even'
     end as 'Or*er Level'
    from company_sales_record
    where $expr{report_date :report_date}
    and $expr{order_level :order_level}
    and $expr{or**********************er}

    Si vous ne définissez pas de valeur par défaut, l'exécution de la requête échoue.

    image

    Vous devez définir une valeur de requête par défaut pour profit_range dans les paramètres.

    image

    Une fois la valeur par défaut définie, la requête s'exécute avec succès. La figure suivante présente le résultat :

    image

  3. Cliquez sur Save pour enregistrer le jeu de données.image

  4. Dans la barre de menus supérieure, cliquez sur l'icône image ou sur l'icône image, puis sélectionnez Create Dashboard.

    image

  5. Sur la page de l'éditeur de tableau de bord, ajoutez une condition de requête et liez-la à un espace réservé.

    Par exemple, lors de la définition d'une condition de requête, vous pouvez utiliser une liste déroulante à sélection unique pour filtrer area et la lier à un espace réservé de valeur afin de transmettre une valeur unique.image.png

    Utilisez un filtre textuel sur or********erer** et liez-le à un espace réservé d'expression afin de transmettre une condition.image.png

  6. Lorsque vous interrogez des données sur le tableau de bord, les valeurs issues des contrôles de requête sont transmises aux espaces réservés correspondants dans votre SQL.

    Par exemple, la figure suivante illustre les conditions de requête sur un tableau de bord.image.png

    L'instruction SQL correspondante est la suivante :

    SELECT * FROM company_sales_record
    WHERE area = 'North China' 
    AND order_number > 100

    Exemple d'utilisation des espaces réservés :

    SELECT * FROM tablename
    WHERE area in ('$val{area_ph}') -- Text type, multi-select
    AND name = '$val{name_ph}' -- Text type, single-select
    AND number = $val{number_ph}  -- Numeric type
    AND report_date > '$val{report_date_ph.get(0)}' -- Date type, get the start date of the date range picker
    AND report_date < '$val{report_date_ph.get(1)}' -- Date type, get the end date of the date range picker

Pour plus d'informations sur les cas d'utilisation des espaces réservés, consultez la rubrique Espaces réservés.

Remarque

Rétrocompatibilité :

Ancien format pour les espaces réservés de valeur (anciennement appelés espaces réservés) : ${nom_espace_reserve}

Ancien format pour les espaces réservés d'expression (anciennement appelés paramètres) : ${nom_champ_physique:nom_parametre}