Utilisation de SQL et des bases de données SQL. SAP pour Enterprise
7.3 Utilisation de SQL et des bases de données SQL
Les SGBDR basés sur le langage SQL sont probablement les plus puissants et les plus répandus. Leur architecture suit généralement le modèle client/serveur. Le SQL Server permet de créer, de stocker et de manipuler les fichiers, les tables, les champs et les enregistrements de la base de données. L'interface client SQL permet aux utilisateurs des stations de travail de créer et d'employer des fichiers de la base de données, mais aussi d'extraire des données pertinentes et exploitables de nature à faciliter leurs tâches journalières.
7.3.1 Utilisation de SQL par Crystal Reports
Lorsque vous vous connectez à une base de données SQL, Crystal Reports se comporte comme un client SQL ordinaire et se connecte à votre serveur SQL via le réseau.
Lorsque vous concevez un rapport qui accède à des données SQL, Crystal Reports crée une requête SQL. Cette requête peut être visualisée en sélectionnant
Afficher la requête SQL
dans le menu
Données
.
Cette requête SQL est une représentation de l'instruction SQL que Crystal Reports envoie au SQL Server. En interprétant l'essentiel de votre conception de rapport en une requête SQL, Crystal Reports réussit à transférer la plus grosse partie du traitement du rapport sur le serveur. Plutôt que de lire la totalité de la base de données pour trouver les données recherchées, Crystal Reports laisse cette tâche au serveur et extrait un ensemble de données beaucoup plus petit, ce qui réduit le délai d'attente et l'immobilisation des ressources de votre station de travail.
7.3.2 Langage SQL
Dans la mesure où Crystal Reports utilise le langage SQL pour accéder aux bases de données client/serveur via
ODBC, la compréhension des clauses (commandes) SQL utilisées vous permettra de mieux appréhender le processus de génération de rapport.
7.3.2.1 SELECT (Sélectionner)
La clause SELECT spécifie les éléments que vous souhaitez extraire de la base de données. Ces éléments peuvent
être des valeurs de champ de base de données (colonne) ou le résultat de calculs exécutés lors du rassemblement des données. Par exemple :
SELECT
TABLEA.'CUSTNAME',
TABLEA.'STATE'
Guide de l'utilisateur de SAP Crystal Reports pour Enterprise
Sources de données et requêtes
©
2014 SAP SE ou société affiliée SAP. Tous droits réservés.
135
7.3.2.2 DISTINCT
La clause DISTINCT contraint la requête à extraire des séries de données uniques (distinctes). Une même ligne ne sera donc extraite qu'une seule fois. L'instruction SELECT de l'exemple précédent pourrait par exemple être modifiée en clause DISTINCT comme suit :
SELECT DISTINCT
TABLEA.'CUSTNAME',
TABLEA.'STATE'
7.3.2.3 FROM (A partir de)
La clause FROM précise la source des champs de base de données spécifiés dans la clause SELECT. Elle répertorie les tables dans lesquelles sont stockés les champs et les enregistrements contenant les données demandées. Les clauses FROM générées par Crystal Reports insèrent un alias avant le nom des tables pour pouvoir les identifier dans votre rapport. L'instruction suivante se compose d'une clause SELECT complétée par la clause FROM :
SELECT
TABLEA.'CUSTNAME',
TABLEA.'STATE'
FROM
'TABLEA' TABLEA
7.3.2.4 WHERE (Où)
La clause WHERE peut remplir deux fonctions :
● Définition des critères de sélection d'enregistrements
● Définition des modalités de jointure de deux tables
Dans le premier cas, elle spécifie une condition de recherche déterminant les enregistrements (ou lignes de données) à extraire. Par exemple :
SELECT
MYTABLE.'SALESPERSON',
MYTABLE.'SALESTOTAL'
FROM
'MYTABLE' MYTABLE
WHERE
MYTABLE.'SALESTOTAL' < 10000.00
Quand WHERE est utilisé pour spécifier la mise en relation entre deux tables, un opérateur de jointure SQL se trouve entre le nom des deux tables.
Dans l'exemple suivant, la clause WHERE joint deux tables :
SELECT
CUSTOMER.'CUST_ID',
CUSTOMER.'CUST_NAME',
ORDERS.'AMOUNT'
136
©
2014 SAP SE ou société affiliée SAP. Tous droits réservés.
Guide de l'utilisateur de SAP Crystal Reports pour Enterprise
Sources de données et requêtes
FROM
'CUSTOMER' CUSTOMER,
'ORDERS' ORDERS
WHERE
CUSTOMER.'CUST_ID' = ORDERS.'CUST_ID'
7.3.2.5 ORDER BY (Trier selon)
La clause ORDER BY indique que les enregistrements trouvés devront être triés d'après les valeurs d'un champ spécifique. En l'absence de la clause ORDER BY, les enregistrements sont présentés dans l'ordre où ils apparaissent dans la base de données d'origine. Lorsque vous spécifiez plusieurs champs à la suite de la clause
ORDER BY, le programme trie les enregistrements en fonction des valeurs contenues dans le premier champ spécifié. Suite à ce premier tri, le programme trie les enregistrements en fonction des valeurs du deuxième champ spécifié, etc. L'instruction SQL suivante utilise une clause ORDER BY :
SELECT
MYTABLE.'COMPANY',
MYTABLE.'CITY',
MYTABLE.'STATE'
FROM
'MYTABLE' MYTABLE
ORDER BY
MYTABLE.'STATE' ASC,
MYTABLE.'CITY' ASC
Remarque
ASC signifie que les valeurs du champ doivent être triées par ordre croissant plutôt que par ordre décroissant
(DESC). L'ordre croissant trie les lettres de A à Z et les nombres de 0 à 9.
7.3.2.6 GROUP BY (Regrouper par)
La clause GROUP BY extrait un ensemble de données de résumé. Au lieu d'extraire les données, GROUP BY les regroupe et présente un résumé de ces groupes par l'intermédiaire d'une fonction d'agrégation SQL. Le serveur renvoie uniquement les informations de résumé correspondant à chaque groupe à Crystal Reports.
Par exemple :
SELECT
MYTABLE.'STATE',
MYTABLE.'ZIPCODE',
SUM (MYTABLE.'SALES')
FROM
'MYTABLE' MYTABLE
GROUP BY
MYTABLE.'STATE',
MYTABLE.'ZIPCODE'
Guide de l'utilisateur de SAP Crystal Reports pour Enterprise
Sources de données et requêtes
©
2014 SAP SE ou société affiliée SAP. Tous droits réservés.
137

Link público atualizado
O link público para o seu chat foi atualizado.