Importer un sous-ensemble des données en utilisant SQL

Lorsque vous importez des données à partir d'une base de données avec ODBC, vous pouvez utiliser des expressions SQL (Structured Query Language) pour n'importer que les valeurs (lignes) de votre choix. SQL est utilisé par beaucoup d'applications de bases de données. Minitab n'agit pas sur l'expression SQL, il la transmet seulement à la base de données.

Sélectionner les champs à importer

  1. Sélectionnez Fichier > Requête de la base de données (ODBC).
  2. Sélectionnez une source de données. Si vous y êtes invité, sélectionnez la base de données.
  3. Dans la boîte de dialogue Requête de la base de données (ODBC), sélectionnez la table à interroger dans la liste déroulante Tableaux disponibles.
  4. Utilisez le bouton fléché pour déplacer les champs à importer dans Champs sélectionnés.
  5. Cliquez sur Utiliser les lignes.
  6. Dans Utiliser les lignes, entrez une expression définissant les données à importer. Ces données deviennent des lignes dans Minitab. Les expressions commencent par le mot-clé "where" et contiennent les noms des champs, des opérateurs logiques (tels que "And" et "="), des fonctions SQL et des valeurs. Pour plus d'informations sur les fonctions SQL prises en charge, reportez-vous à la documentation de votre application de base de données.
  7. Cliquez sur OK dans chaque boîte de dialogue

Instructions sur la syntaxe des expressions SQL

Les règles de syntaxe varient en fonction des pilotes ODBC des différentes applications de base de données. Si vous avez besoin d'aide avec la syntaxe, contactez l'administrateur de la base de données.

Valeurs texte
La syntaxe des valeurs texte doit respecter les règles de syntaxe du pilote ODBC, comme suit :
  • Pour Microsoft Access® et de nombreuses autres bases de données, les valeurs texte doivent apparaître entre apostrophes (par exemple, 'Morristown').
  • Pour les bases de données Oracle ou SQL Server, placez les valeurs texte entre deux groupes de guillemets (par exemple, ""Morristown"").
Valeurs numériques
Ne placez aucun caractère spécial autour des nombres, comme 300.
Valeurs date/heure
Pour les bases de données Access et dBASE, entourez les dates de dièses (par exemple, #12/31/2016#). Pour les autres bases de données, reportez-vous à la documentation de l'application. Au lieu de saisir une date spécifique, vous pouvez également utiliser une fonction de date/d'heure.
Noms des champs
Les délimiteurs de champs varient d'un pilote ODBC à l'autre. Si vous entrez le nom du champ en le sélectionnant dans la liste de la boîte de dialogue Utiliser les lignes, Minitab entoure le champ du délimiteur adapté pour votre pilote ODBC.
Fonctions
Pour indiquer que la fonction est une fonction ODBC et non une fonction native de l'application de base de données à partir de laquelle vous effectuez l'importation, utilisez des crochets et les lettres "fn" (par exemple, {fn SQRT(128)}). Si vous sélectionnez des fonctions dans la liste de la boîte de dialogue Utiliser les lignes, Minitab ajoute automatiquement la syntaxe nécessaire.
Caractères génériques
Pour les caractères génériques de toutes les requêtes SQL, utilisez un symbole de pourcentage (%) plutôt qu'un astérisque (*) et utilisez un trait de soulignement (_) plutôt qu'un point d'interrogation (?).

Exemples d'expressions SQL pour Microsoft Access®

La syntaxe des applications de base de données autres qu'Access peut varier.

Remarque

Pour de meilleurs résultats, ne faites pas de copier-coller de ces expressions à partir de la table. Saisissez-les directement dans la boîte de dialogue.

Données à importer Expression SQL
Enregistrements du premier trimestre 2017
où DATE >= #1/1/17# et DATE < #4/1/17#
Informations sur les employés embauchés depuis le 1er janvier 2010, qui travaillent dans le service Financier.
où DATE_HIRED > #1/1/10# et DEPT = 'Financier'
Données des 30 derniers jours
où `NomChampDeDate` > Now() - 30
Données d'hier
où (Format(Now-1,'jj-mm-aa')=Format(NomChampDeDate,'jj-mm-aa'))

Pourquoi certaines fonctions SQL ne fonctionnent-elles pas ?

SQL dispose de fonctions ODBC qui vous permettent de créer des expressions. Il se peut toutefois qu'un pilote ODBC spécifique ne prenne pas en charge toutes les fonctions ODBC. Par exemple, le pilote ODBC pour Microsoft Access® ne prend pas en charge la fonction TIMESTAMPDIFF. Si un message d'erreur apparaît, il provient du pilote ODBC, et non de Minitab.

Voici un exemple de message d'erreur que vous recevez lorsque vous utilisez ODBC avec la fonction TIMESTAMPDIFF pour interroger Microsoft Access® :
"Etat de l'erreur SQL : 37000, code d'erreur natif : FFFFF3E2, erreur ODBC : [Microsoft] [Pilote ODBC pour Microsoft® Access] Fonction 'TIMESTAMPDIFF' non définie dans l'expression."

Access fournit une fonction alternative à TIMESTAMPDIFF. Il s'agit de la fonction DATEDIFF( ). La requête suivante permet de récupérer trois colonnes d'informations sur un employé. La première colonne contient le nombre de jours écoulés entre la date d'embauche de l'employé et la date actuelle. Les deuxième et troisième colonnes contiennent le nom et la date d'embauche de l'employé.

ODBC; Connect "DSN=Test;DBQ=Q:\Trumparc.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;PWD=msl;SystemDB=Q:\secured.mdw;UID=msl;"; SQLString "SELECT DateDiff('y', `DateEmbauche`, Now()),`Nom`,`DateEmbauche` FROM `Employé`".