Langage SQL. Business Objects Crystal Reports 2008 SP1
Bases de données
25
Utilisation de SQL et des bases de données SQL
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) suivantes vous permettra de mieux appréhender le processus de génération d'un rapport.
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 ou le résultat de calculs exécutés lors du rassemblement des données. Par exemple :
SELECT
TABLEA.'CUSTNAME',
TABLEA.'STATE'
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'
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.
754 Guide de l'utilisateur de Crystal Reports 2008 SP1
Bases de données
Utilisation de SQL et des bases de données SQL
25
L'instruction suivante se compose d'une clause SELECT complétée par la clause FROM :
SELECT
TABLEA.'CUSTNAME',
TABLEA.'STATE'
FROM
'TABLEA' TABLEA
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. Voir
page 731.
Dans l'exemple suivant, la clause WHERE joint deux tables :
SELECT
CUSTOMER.'CUST_ID',
CUSTOMER.'CUST_NAME',
ORDERS.'AMOUNT'
FROM
'CUSTOMER' CUSTOMER,
'ORDERS' ORDERS
WHERE
CUSTOMER.'CUST_ID' = ORDERS.'CUST_ID'
Guide de l'utilisateur de Crystal Reports 2008 SP1 755
Bases de données
25
Utilisation de SQL et des bases de données SQL
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.
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
756 Guide de l'utilisateur de Crystal Reports 2008 SP1

Enlace público actualizado
El enlace público a tu chat ha sido actualizado.