XML et Requete

Signaler
Messages postés
69
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
19 mars 2009
-
Messages postés
559
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
5 septembre 2007
-
<RESULTAT>

<node>

blueangel12@yahoo.com

<DATE>13/02/2006</DATE>

<HEURE>18:39:05</HEURE>

….

</node>

<node>



Amien1@yahoo.com

<DATE>13/02/2006</DATE>

<HEURE>20:40:05</HEURE>

….

</node>

<node>

blueangel12@yahoo.com

<DATE>14/02/2006</DATE>

<HEURE>18:39:05</HEURE>

….

</node>

<node>

Amien1@yahoo.com

<DATE>14/02/2006</DATE>

<HEURE>19:39:05</HEURE>

….

</node>

</RESULTAT>




Bonjour tout le monde j’ai un problème dans le tri dans un document
Xml en faite dans mon flux Xml les nœuds sont triées par rapport au
date et l’heure par ordre croissant mon probléme est le suivant est ce
que je peux faire un groupemment par rapport à l’emetteur tout en
gardant le tri sur la date. L’element le plus ancien sera le premier
sauf quand va grouper sur un même emetteur et dans ce cas on aura

<RESULTAT>

<node>

blueangel12@yahoo.com

<DATE>13/02/2006</DATE>

<HEURE>18:39:05</HEURE>

….

</node>

<node>

blueangel12@yahoo.com

<DATE>14/02/2006</DATE>

<HEURE>18:39:05</HEURE>

….

</node>

<node>



Amien1@yahoo.com

<DATE>13/02/2006</DATE>

<HEURE>20:40:05</HEURE>

….

</node>



<node>

Amien1@yahoo.com

<DATE>14/02/2006</DATE>

<HEURE>19:39:05</HEURE>

….

</node>

</RESULTAT>

en faite je suis entrain de passer un requete qui me renvoie une liste de noeud sur cette forme .

les noeud sont trié à travers la requete SQL suivante par date du plus ancien au plus récent :

SELECT EMETTEUR, DATE, HEURE

FROM tb_Personne

ORDER BY DATE, HEURE


donc pour moi il me faut les emeteurs du plus ancien au plus récent
mais ces emetteurs doivent être regroupé au moment de l'affichage par
leur adresse mails.

de façon à ce que l'emetteur le plus ancien
soit affiché en premier mais que ses enregistremment le suivent aprés,
le deuxieme emetteur suit la même logique c'est à dire que dans chaque
premier noeud les enregistrement sont trié par date mais ils sont
groupé par emetteur, j'éspere que je suis un peu plus claire.

Merci pour votre aide!!!

blueangel13

1 réponse

Messages postés
559
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
5 septembre 2007
1
Il te faut donc d'abord la liste des personnes triée, puis pour chaque personne la liste de leur message...

SELECT emetteur, MIN(date) AS date, MIN(heure) AS heure
FROM tb_Personne
GROUP BY emetteur
ORDER BY date, heure

Pour chacun de ces résultats tu veux la liste de leurs messages, tu vas donc joindre les 2 tables, la première créée par toi (ci-dessus), la deuxième, la table de base :

SELECT T1.emetteur, T2.jour, T2.heure
FROM (
SELECT emetteur, min(jour) AS jour, min(heure) AS heure
FROM Tb_Personne
GROUP BY emetteur
) AS T1, Tb_Personne AS T2
WHERE T1.emetteur = T2.emetteur
ORDER BY T1.jour, T1.heure

Qui te permet de trier tes données par un autre point que ta base par défaut...

Mindiell Software