IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Numerotation de chaque ligne par date


Sujet :

Requêtes MySQL

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Numerotation de chaque ligne par date
    Bonjour ,
    j'ai conçu un registre de rendez-vous pour noter les rendez-vous de

    mes patients. il comprend les champs;
    id index , auto-increment
    date du jour date
    sexe M ou F
    age 0 à 150

    je voudrais à l'aide d'une requête Mysql, écrire une requête qui me

    donne l'ordre de passage de mes patients pour chaque journée de

    consultation.

    C'est à dire pour chaque journée de consultation, le premier patient

    qui a pris rendez-vous portera le numero 1, le deuxième portera le

    numero 2 ainsi de suite.

    Avec la requête Mysql, je compte obtenir les champs suivants:

    id index , auto-increment
    date du jour date
    ordre de passage 1 à n
    sexe M ou F
    age 0 à 150

    Pouvez vous m'accorder votre aide pour écrire cette requête?
    Merci par avance.

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 195
    Points : 121
    Points
    121
    Par défaut
    Bonjour,

    Si j'ai bien compris votre demande, vous voulez classer les patients par ordre d'inscription pour une date donnée (Date du jour en l’occurrence).
    Pour cela j'écrirais la requête de la façon suivante.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM `NOM_DE_LA_TABLE` WHERE `date du jour` = "LA DATE DU JOUR" ORDER BY `id index` ASC
    Cependant cela ne fonctionnera pas si vous voulez les classer suivant leur heure de rendez-vous.

    Si cela devait être le cas il faudrait enregistrer le timestamp de la date et heure de rendez-vous et trier de la même manière.

  3. #3
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 771
    Points
    1 771
    Par défaut
    Bonjour

    Pour compléter la réponse de runner77, si vous tenez à avoir un numéro de ligne il suffit d'ajouter une variable et de l'incrémenter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SET @NoLig=0;
    SELECT @NoLig:=@NoLig+1 AS No_ligne,*
    FROM `NOM_DE_LA_TABLE` 
    WHERE `date du jour` = "LA DATE DU JOUR" 
    ORDER BY `id index` ASC
    Bon dev
    Laurent

    - C’est génial.
    - Non c’est bizarre.
    - Justement quand c’est simple y’a des milliers de réponses et quand c’est bizarre y’en a aucune.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    Bonsoir,

    je pense qu'il veut pour chaque jour un numéro a coter de chaque patient allant de 1 à n patient JOUR,

    donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    date       |  place   |   id    |  nom    | prenom
    --------------------------------------------------
    21/12/2012 |    1     |   999   | dupont  | toto
    21/12/2012 |    2     |    12   | durand  | titi
    21/12/2012 |    3     |    16   | delarue | monique
    25/12/2012 |    1     |    13   | tata    | yoyo
    01/01/2013 |    1     |    19   | nom     | prenom
    Pour moi ce procédé relève de l'affichage donc du code applicatif.
    une réponse vous a permis d'avancer ?

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 195
    Points : 121
    Points
    121
    Par défaut
    Citation Envoyé par Exia93 Voir le message
    Bonsoir,

    je pense qu'il veut pour chaque jour un numéro a coter de chaque patient allant de 1 à n patient JOUR,

    donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    date       |  place   |   id    |  nom    | prenom
    --------------------------------------------------
    21/12/2012 |    1     |   999   | dupont  | toto
    21/12/2012 |    2     |    12   | durand  | titi
    21/12/2012 |    3     |    16   | delarue | monique
    25/12/2012 |    1     |    13   | tata    | yoyo
    01/01/2013 |    1     |    19   | nom     | prenom
    Pour moi ce procédé relève de l'affichage donc du code applicatif.
    Je suis d'accord également, mais il faut quand même trier sur l'id qui est auto incrémenté pour savoir l'ordre d'inscription des patients

  6. #6
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Citation Envoyé par Exia93 Voir le message
    Pour moi ce procédé relève de l'affichage donc du code applicatif.
    Sauf que le SQL normatif propose ROW_NUMBER...

    MySql non, alors il faut finter... ou le gérer applicativement.

  7. #7
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    Citation Envoyé par runner77 Voir le message
    Je suis d'accord également, mais il faut quand même trier sur l'id qui est auto incrémenté pour savoir l'ordre d'inscription des patients
    Sauf si c'est l'ordre de passage et non l'ordre d'inscription,

    un patient qui s'inscrit le matin à 9h pour une consultation à 19h aura un plus petit id que la personne s'étant inscrit à 10h pour une consultation à 15h.

    Ensuite comme la dit skuatamad, utiliser ROW_NUMBER ( ou le moyen de contournement MySQL) pour sont besoin est la solution.
    une réponse vous a permis d'avancer ?

  8. #8
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Merci et la recherche continue.
    Merci infiniment pour toutes vos réponses. Les débats sur la question me prouvent que mes nuits blanches à la recherche de la solution ne sont pas du fait de mon ingnorence: c'est vraiment une requête difficile.

    Exia93 a très bien compris ma préoccupation.
    j'espère seulement qu'une solution existe en Mysql puisque c'est elle que j'utilise.

    La base de donnée existe mais le champs que Exia93 a nommé PLACE me manques.

    Par ailleurs, je ne tiens pas compte des heures de rendez-vous. uniquement des jours.

    Merci encore et la recherche continue.

  9. #9
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    À tu vue ce que skuatamad t'a proposé pour feinter le ROW_NUMBER ? Car je pense que c'est vers ça que tu doit te tourner vue que tu utilise MySQL.
    une réponse vous a permis d'avancer ?

  10. #10
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    oui Exia93, j'ai vu la proposition pour feinter.
    Etant donné la complexité des requêtes proposées et sachant que je dois les adapter à mon cas, je penses m'y pencher sérieusement demain.
    Merci.

Discussions similaires

  1. Remplacer la 1er virgule de chaque ligne par une tabulation
    Par michel42 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 16/05/2012, 17h12
  2. [MySQL] Moyenne de lignes par date
    Par renaud26 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 20/03/2012, 10h16
  3. awk, trier lignes par date
    Par donkeyshot dans le forum Unix
    Réponses: 0
    Dernier message: 17/06/2010, 12h28
  4. [XL-2007] Calcul du nombre de ligne par date
    Par goraaa dans le forum Excel
    Réponses: 2
    Dernier message: 29/12/2009, 11h39
  5. Réponses: 13
    Dernier message: 11/05/2006, 14h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo