par
AoSiX » 29 avr. 2011, 16:33
Bonjour,
je cherche une à faire une requête SQL ( sous MySQL 5 ) qui n'a pas l'air bien compliqué à première vue, mais qui me fait souffrir depuis 1 bonne heure ! Tout d'abord, voici ma table :
Code : Tout sélectionner
id, date_attribution, date_utilisation
1, 2011-04-16, NULL
2, 2011-04-17, 2011-04-17
3, 2011-04-17, 2011-04-18
4, 2011-04-18, 2011-04-27
5, 2011-04-18, 2011-04-30
Ce que je cherche à avoir comme résultat, c'est un tableau avec pour une date, le nombre de date_attribution différent de NULL, et le nombre de date_utilisation différent de NULL.
Exemple de résultat pour ce tableau :
Code : Tout sélectionner
Date, Nb_Attr, Nb_Utilisation
2011-04-17, 1, 0
2011-04-17, 2, 1
2011-04-18, 2, 1
2011-04-27, 0, 1
2011-04-30, 0, 1
Toute mes tentatives se sont soldé par des échecs cuisants

Le résultat le plus proche de ce que je voudrais a été obtenu avec le requête suivante :
SELECT * FROM
(
SELECT COUNT(Clef_ID) as NB_ATTA, 0 as NB_UTILE, DATE_FORMAT(Date_Attachement,'%Y-%m-%d') as LADATE FROM Clef WHERE Date_Attachement IS NOT NULL GROUP BY LADATE
UNION
SELECT 0 as NB_ATTA, COUNT(Clef_ID) as NB_UTILE, DATE_FORMAT(Date_Utilisation,'%Y-%m-%d') as LADATE FROM Clef WHERE Date_Utilisation IS NOT NULL GROUP BY LADATE
)
as T
GROUP BY T.LADATE
ORDER BY T.LADATE ASC;
Mais bizarrement de cette manière, NB_UTILE est toujours à 0 :/
J’espère que vous serez en mesure de m'aider,
Julien
EDIT: Je pourrai aussi faire deux requêtes et faire du traitement avec PHP, mais je ne pense pas que ce soit le meilleur moyen...
Bonjour,
je cherche une à faire une requête SQL ( sous MySQL 5 ) qui n'a pas l'air bien compliqué à première vue, mais qui me fait souffrir depuis 1 bonne heure ! Tout d'abord, voici ma table :
[code]
id, date_attribution, date_utilisation
1, 2011-04-16, NULL
2, 2011-04-17, 2011-04-17
3, 2011-04-17, 2011-04-18
4, 2011-04-18, 2011-04-27
5, 2011-04-18, 2011-04-30
[/code]
Ce que je cherche à avoir comme résultat, c'est un tableau avec pour une date, le nombre de date_attribution différent de NULL, et le nombre de date_utilisation différent de NULL.
Exemple de résultat pour ce tableau :
[code]
Date, Nb_Attr, Nb_Utilisation
2011-04-17, 1, 0
2011-04-17, 2, 1
2011-04-18, 2, 1
2011-04-27, 0, 1
2011-04-30, 0, 1[/code]
Toute mes tentatives se sont soldé par des échecs cuisants :( Le résultat le plus proche de ce que je voudrais a été obtenu avec le requête suivante :
[sql]SELECT * FROM
(
SELECT COUNT(Clef_ID) as NB_ATTA, 0 as NB_UTILE, DATE_FORMAT(Date_Attachement,'%Y-%m-%d') as LADATE FROM Clef WHERE Date_Attachement IS NOT NULL GROUP BY LADATE
UNION
SELECT 0 as NB_ATTA, COUNT(Clef_ID) as NB_UTILE, DATE_FORMAT(Date_Utilisation,'%Y-%m-%d') as LADATE FROM Clef WHERE Date_Utilisation IS NOT NULL GROUP BY LADATE
)
as T
GROUP BY T.LADATE
ORDER BY T.LADATE ASC;[/sql]
Mais bizarrement de cette manière, NB_UTILE est toujours à 0 :/
J’espère que vous serez en mesure de m'aider,
Julien
[b]EDIT:[/b] Je pourrai aussi faire deux requêtes et faire du traitement avec PHP, mais je ne pense pas que ce soit le meilleur moyen...