Problème Requete SQL - SQL/NoSQL - Programmation
Marsh Posté le 15-02-2008 à 13:16:19
Bonjour,
Essai quelque chose dans ce genre là :
SELECT gi_categories.nom, gi_intervention.date, COUNT(*)
FROM gi_categories
LEFT JOIN gi_intervention ON gi_categories.id = gi_intervention.id_categorie AND gi_intervention.date BEWEEN '2008-02-01' AND '2008-02-08'
GROUP BY gi_categories.nom, gi_intervention.date
Marsh Posté le 15-02-2008 à 13:55:15
Eh bien, ça fonctionne bien si on ne sélectionne qu'un seul jour Dès qu'il y a plusieurs jours dans la sélection, il ne selectionne que les catégories pour lesquels il y a bien une intervention dans la plage de date.
Je sèche completement là!
Pour info je suis sur MySQL
Marsh Posté le 15-02-2008 à 14:25:29
si tu mets des conditions sur ta table "optionnelle", tu transformes ta jointure interne en jointure externe.
Voir là: http://forum.hardware.fr/hfr/Progr [...] 1691_1.htm ( marre de toujours refaire la même explication )
Marsh Posté le 15-02-2008 à 14:46:43
Merci pour cette explication, cependant, lorsque j'execute la requête, il va effectivement me récupérer toutes les catégories, mais une seule fois pour toute la requête. Ce que je voudrais, c'est que pour chaque date pour laquelle il existe au moins une intervention, j'ai toutes les catégories affichés pour cette date.
Code :
|
Je me demande si c'est vraiment possible en SQL. Est-ce que la solution ne serait pas de faire une requête pour chaque jour de ma plage?
Marsh Posté le 18-02-2008 à 16:45:22
A vérifier :
Code :
|
Marsh Posté le 18-02-2008 à 16:45:45
Ca marche sous SQL Server 2005 avec ce jeu de test :
Code :
|
Marsh Posté le 18-02-2008 à 16:46:01
(ps : mais c'est tout pourri hein )
Il s'agit ici de faire un produit cartésien (comme ça, on récupère bien tous les tuples des deux tables), et de compter les lignes qui respectent la jointure.
Marsh Posté le 15-02-2008 à 12:36:27
Bonjour à tous!
Voilà en fait j'ai cette requête SQL:
Mon problème est que le résultat de cette requête ne m'affiche que les catégories pour lesquelles une intervention existe à la date. Ce que je voudrais c'est pouvoir afficher toutes les catégories pour chacune des dates présentes, et si le résultat du COUNT est nul, alors il m'affiche Null.
J'ai essayer de la tourner dans tous les sens, mais là, je ne sais vraiment plus quoi faire. Si quelqu'un à une idée.
Merci!