Vendredi 6 mai 5 06 /05 /Mai 09:28

Voilà quelques jours que je bosse sur des rapports générés avec pas mal de procédures SQL. Même si j'adhère pas vraiment au SQL j'ai appris 2 ou 3 trucs sympas qui peuvent être assez sympa.

 

Voici donc l'un d'entre eux: Comment combiner 2 requètes (en l'occurence 2 SELECT) en une seule requête, ou encore comment utiliser les sous-requêtes.

 

Le but du jeu est de faire un premier SELECT qu'on pourrait stocker dans une table temporaire par exemple. Puis ensuite faire une deuxième requête sur cette table de résultat.

 

Et bien bonne nouvelle! On peut combiner les 2 SELECT en une seule requête et se passer de la table temporaire.

 

Voilà pour le principe ... peut-être un peu abstrait mais avec un exemple tout devient plus clair d'autant que la syntaxe est assez simple.

 

SELECT code_postal, SUM(prix_total) AS chiffre_affaire
FROM (
   SELECT nom_client, code_postal, SUM(total) AS prix_total
   FROM achats
   INNER JOIN clients ON (achats.client_id = client.id)
) AS achats_clients
GROUP BY code_postal
ORDER BY chiffre_affaire DESC;

 

Voilà 2 SELECT imbriqué qui permettent de savoir quelle zone géographique est la plus rentable pour votre commerce. Mais là n'est pas l'intérêt il y avait moyen de faire autrement (et surement mieux) mais je voulais illustrer la syntaxe des SELECT imbriqués.

 

Il est indispensable de nommer la sous-requête avec une instruction AS sinon on obtient l'erreur suivante:

 

ERROR 1248 (42000): Every derived table must have its own alias

Par Bliz - Publié dans : MySQL - Communauté : Tutoriels informatiques
Ecrire un commentaire - Voir les 1 commentaires
Retour à l'accueil

Recherche

Présentation

  • : Patatos
  • Patatos
  • : informatique linux programmation java script Pro
  • : Ce blog c'est là où je poste les problèmes informatiques et techniques (et les solutions bien sûr), des sujets (plus ou moins intéressants) que je rencontre. Donc oui ça s'annonce plutôt technique mais ça peut aider parfois ... donc voilà j'espère surtout que ce blog sera utile (un peu...) Et pour le rendre un peu plus utile je vous propose de m'envoyer vos questions (soit via le lien "contact", soit dans les commentaires). J'essaierai d'y répondre dans la mesure du possible bien sûr!
  • Partager ce blog
  • Retour à la page d'accueil
  • Contact

Syndication

  • Flux RSS des articles

Catégories

Créer un blog gratuit sur over-blog.com - Contact - C.G.U. - Rémunération en droits d'auteur - Signaler un abus - Articles les plus commentés