Je me base principalement sur le fait d’essayer d’obtenir la "bonne" réponse, de sorte que vous pourriez découvrir quelques problèmes de performances. Inutile d'accélérer une requête incorrecte.
Comprendre les relations entre les tables - la plupart seront un à plusieurs. Connaître le "plusieurs" table. Identifiez les champs requis pour vos jointures.
Pensez aux scénarios de participation à GAUCHE - Sélectionnez tous les employés et leur salaire depuis le mois dernier. Et s'ils ne recevaient pas de salaire le mois dernier?
Connaître le jeu de résultats: 1) Dans une feuille de calcul, entrez manuellement au moins un enregistrement correct pour votre requête. 2) Ecrivez la requête sous une forme assez simple pour identifier le nombre d'enregistrements à renvoyer. Utilisez les deux pour tester votre requête afin de vous assurer que la jonction d'une nouvelle table ne modifie pas le résultat.
Découpez votre requête en parties gérables - Vous n'avez pas à l'écrire en une fois. Les requêtes complexes peuvent parfois être simplement un ensemble de requêtes simples.
Méfiez-vous des niveaux d'agrégation mixtes : si vous devez mettre des valeurs mensuelles, trimestrielles et cumulatives dans le même ensemble de résultats, vous devrez les calculer séparément dans des requêtes groupées sur des valeurs différentes.
Sachez quand joindre UNION Il est parfois plus facile de diviser des sous-groupes en leurs propres déclarations sélectionnées. Si vous avez une table mélangée avec des gestionnaires et d'autres employés, et que vous devez faire dans chaque colonne des instructions Case basées sur l'appartenance à l'un de ces groupes, il peut s'avérer plus simple d'écrire une requête de gestionnaire et de la lier à une requête d'employé. Chacun contiendrait sa propre logique. Devoir inclure des éléments de différentes tables dans différentes lignes est une utilisation évidente.
Formules complexes / imbriquées - Essayez d'indenter de manière cohérente et n'ayez pas peur d'utiliser plusieurs lignes. "CASE WHEN CASE WHEN CASE WHEN" va vous rendre fou. Prenez le temps de bien réfléchir. Enregistrez les calculs complexes pour la fin. Obtenez les enregistrements corrects sélectionnés en premier. Ensuite, vous attaquez des formules complexes en sachant que vous travaillez avec les bonnes valeurs. Voir les valeurs utilisées dans les formules vous aidera à repérer les zones dans lesquelles vous devez prendre en compte les valeurs NULL et où gérer l'erreur de division par zéro.
Testez souvent lorsque vous ajoutez de nouvelles tables pour vous assurer que vous obtenez toujours le jeu de résultats souhaité et que vous savez quelle jointure ou quelle clause est coupable.