rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Sql : regrouper plusieur entrées par date

madzorg, le vendredi 23 mai 2008 à 11:30:15
Bonjour,
Je souhaiterai afficher un ensemble de ligne extraite d'une table en les regroupant par date, dans ce style :

Date1 : - ligne1
- ligne2
Date2 : - ligne3
- ligne4
- ligne5

etc...

J'arrive bien a selectionner les lignes, je souhaiterai juste eviter lors de l'affichage une répétition de la date lorsque j'ai plusieurs lignes ayant la meme date, cad ne pas avoir un truc comme ca :

Date1 : - ligne1
Date1 : - ligne2
Date2 : - ligne3
Date2 : - ligne4
Date2 : - ligne5

Merci d'avance !!
Répondre à madzorg  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
croy, le vendredi 23 mai 2008 à 11:31:49
Quelle requête sql utilises-tu ?
Répondre à croy

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
madzorg, le vendredi 23 mai 2008 à 13:39:18
C'est pour mon taf, je m'occupe d'une petite base de donnée qui stock des infos sur des mesures. La requete sert dans une page permettant d'afficher un planning mensuel, cad afficher toutes les mesures effectuées chaque jour... La requete est un peu longue mais bon... il faut que je mette un GROUP BY qqpart ?


SELECT DISTINCT date AS "DatePlanif", idMesure AS "Mesure", typeOperation AS "Type",
techno AS "Technologie", protocole AS "Protocole", client AS "Client", etat, commentaire
FROM Mesure, Planifie, TypeMesure, Estdetype
WHERE Planifie.Mesure_idMesure = Mesure.idMesure
AND Mesure.idMesure = Estdetype.Mesure_idMesure
AND TypeMesure.idTypeMesure = Estdetype.TypeMesure_idTypeMesure
AND YEAR(Planifie.date) = '.$da.'
AND MONTH(Planifie.date) = '.$noMois.'+1
AND (Mesure.etat = "plan" OR Mesure.etat = "fait")
ORDER BY Planifie.date ASC
Répondre à madzorg

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
croy, le vendredi 23 mai 2008 à 13:45:40
le GROUP BY est à mettre à la fin et je ne vois pas l'utilité du DISTONCT au début.
Répondre à croy

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
madzorg, le vendredi 23 mai 2008 à 13:50:32
Moi non plus mais sans le DISTINCT j'ai des truc bizarres..
Le GROUP BY ne fait pas ce que je veux..

Je précise qu'il s'agit de MySQL sous php..
Répondre à madzorg

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
croy, le vendredi 23 mai 2008 à 13:57:30
Décris les "trucs bizarres" pour que je puisse t'aider.
Répondre à croy

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
madzorg, le vendredi 23 mai 2008 à 14:03:14
Sans le distinct j'ai des mesures qui apparaissent plusieurs fois le meme jour.... Une meme mesure peut apparaitre sur plusieurs jours d'affilés (et c'est normal), mais une meme mesure plusieurs fois le meme jour ca c'est louche.

Avec un group by je me retrouve avec une seule ligne par jour alors qu'il peut y avoir plusieurs mesure. il m'affiche une seule mesure et "mange" les autres..
Répondre à madzorg

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 croy, le vendredi 23 mai 2008 à 14:25:46
Si je comprends bien ton pb, tu dois utiliser une requête comme :
SELECT date AS "DatePlanif", idMesure AS "Mesure", typeOperation AS "Type",
techno AS "Technologie", protocole AS "Protocole", client AS "Client", etat, commentaire
FROM Mesure, Planifie, TypeMesure, Estdetype
WHERE Planifie.Mesure_idMesure = Mesure.idMesure
AND Mesure.idMesure = Estdetype.Mesure_idMesure
AND TypeMesure.idTypeMesure = Estdetype.TypeMesure_idTypeMesure
AND YEAR(Planifie.date) = '.$da.'
AND MONTH(Planifie.date) = '.$noMois.'+1
AND (Mesure.etat = "plan" OR Mesure.etat = "fait")
ORDER BY Planifie.date ASC


Ni DISTINCT ni GROUP BY.

SI tu as des mesures qui apparaissent plusieurs fois le même jour, ce doit être parceque les jointures de table remontent plusieurs combinaisons.

Suppose deux tables :
- table temp1 : 2 colonnes id et clef. Un seul enregistrement avec id=1 et clef=100
- table temp2 : 2 colonnes clef et lib. Deux enregistrements : 100, 1234 et 100, 4321 (ces deux enregistrements ont la même valeur de clef

La requête select id,temp1.clef,lib from temp1,temp2 where temp1.clef=temp2.clef;
retournera deux enregistrements bien qu'il n'y en ait qu'un dans temp1.

La requête select DISTINCT id,temp1.clef,lib from temp1,temp2 where temp1.clef=temp2.clef;
retournera les deux mêmes enregistrements car leurs valeurs sont bien distinctes (colonne lib)

Par contre la requête select DISTINCT id,temp1.clef from temp1,temp2 where temp1.clef=temp2.clef;
ne retourne qu'un enregistrement car la variable temp2.lib n'est plus retournée et ne distingue donc plus les deux enregistrements.

Il faut que tu comprennes bien ce qui ci-dessus, que tu analyses pourquoi plusieurs enregistrements sont retournés par ta requête et si c'est normal.

Si c'est normal, expose cela clairement et nous verrons ce qu'il est possible de faire.
Répondre à croy
Afficher resultat requete sql dans datagrid (Résolu)Bonjour, Je debute sous VB 6 et j'aimerai afficher le résultat d'une requete sql dans un datagrid. J'ai mis ma requete dans une variable string nommée requete. Sur un site j'ai obtenu le code suivant : Sub remplir_grid() Dim sql As... www.commentcamarche.net/forum/affich-6928886-afficher-resultat-requete-sql-dans-datagrid
SQL stat par semaine (Résolu)Bonjour a tous, voila mon petit soucis .... je voudrais pouvoir regrouper des dates par semaines !!! je m'explique, voila ma requete (sous Access) : SELECT date, zone, count(statut) FROM ma_table WHERE date>=[début de période] and date www.commentcamarche.net/forum/affich-3028373-sql-stat-par-semaine
[vb.net/sql] insertion de donnée (Résolu)Bonjour, je veux inserer des données à partir d'un formulaire windows crée en vb (a l'aide des textbox) voila mon code Imports System.Data Imports System.Data.SqlClient Imports System.Data.Common.DbCommand Public Class Form1 Private Sub... www.commentcamarche.net/forum/affich-3860987-vb-net-sql-insertion-de-donnee
[PHP] Les ressemblances à ne pas confondreLes ressemblances à ne pas confondre Introduction Concatenation ou paramètres ? Guillemets/Apostrophe Structure require/include isset vs empty htmlentities ou htmlspecialchars ? Nombre de signes égal Introduction Cette astuce présente... www.commentcamarche.net/faq/sujet-4479-php-les-ressemblances-a-ne-pas-confondre
Accélérer les accès disque (désactiver la date de dernier accès)La plupart des systèmes d'exploitation actuels utilisent des systèmes de fichiers avec des fonctions avancées: gestion des droits, journalisation... Entre autres, NTFS (Windows) et ext3 (Linux) sont capables d'enregistrer la date de dernier accès à... www.commentcamarche.net/faq/sujet-7066-accelerer-les-acces-disque-desactiver-la-date-de-dernier-acces
Crontab et exécution d'une requête SQL (Résolu)Bonjour, J'ai écrit un script shell dont la fonction est de supprimer des répertoires dépendant d'une requête SQL sur une database Oracle 9. Lorsque j'exécute mon script directement depuis Unix, ça marche très bien, mais lorsque je le... www.commentcamarche.net/forum/affich-3714646-crontab-et-execution-d-une-requete-sql
SQL comparaison de date (Résolu)Bonjour à tous, j'ai un problème avec le SQL je n'arrive pas à comparer pour savoir si date_pret est supérieru à un mois par rapport au 9 mars 2005 WHERE 2005 - EXTRACT(year FROM date_pret)>0 OR 03 - EXTRACT(month FROM date_pret)>1 OR 09 -... www.commentcamarche.net/forum/affich-1327682-sql-comparaison-de-date
[sql] selection de date sans l'heure (Résolu)Bonjours a tous. Je travaille actuelement sur des page en asp utilisant des tables d'une base ORACLE. Je voudrais reccuperer une date en format (dd/mm/yyyy hh:min:s) sans les heures pour que s'affiche sur ma page la date "classique".... www.commentcamarche.net/forum/affich-2881593-sql-selection-de-date-sans-l-heure
Entrée en vigueur le 30 juin du règlement européen sur les tarifs d'itinérance mobile(Paris - Relaxnews) - L'entrée en vigueur du règlement européen sur les tarifs d'itinérance internationale interviendra le samedi 30 juin, pour les 27 Etats membres. A compter de cette date, les autorités règlementaires nationales et la Commission... www.commentcamarche.net/actualites/entree-en-vigueur-le-30-juin-du-reglement-europeen-sur-les-tarifs-d-itinerance-mobile-3163473-actualite.php3
SQL - Jointures Une jointure (ou θ-jointure) est un produit cartésien de deux tables. On appelle équijointure une θ-jointure dont la qualification est une égalité entre deux colonnes. En SQL, l'expression d'une jointure se fait en précisant le nom des... www.commentcamarche.net/sql/sqljoint.php3
SQL - Tri et regroupement Il est possible en SQL d'organiser les résultats grâce à la clause ORDER BY. La clause ORDER BY est suivie des mots clés ASC ou DESC, qui précisent respectivement si le tri se fait de manière croissante (par défaut) ou décroissante. Le classement se... www.commentcamarche.net/sql/sqltri.php3
Le langage SQL SQL (Structured Query Language, traduisez Langage de requêtes structuré) est un langage de définition de données (LDD, ou en anglais DDL Data Definition Language), un langage de manipulation de données (LMD, ou en anglais DML, Data Manipulation... www.commentcamarche.net/sql/sqlintro.php3
Toutes les réponses pour « Sql : regrouper plusieur entrées par date »