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 :

Générer un champ dynamiquement avec une requête ?


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier Avatar de The Molo
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 240
    Points : 99
    Points
    99
    Par défaut Générer un champ dynamiquement avec une requête ?
    Bonjour à tous !

    J’aimerais vous demandez s’il est possible de :

    Lancer une requête qui va chercher des infos dans une table et que pour chaque ligne retournée, génère un champ en fonction des valeurs de la ligne ?

    Exemple (ce sera + claire ) :

    Voici ce que ma table contient (Un patient peut voyager dans différentes unités ):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    NumPatient      Nom	Unité	             Date d’entrée
     
    0001	     Thomas	LibUnité1		03-05-2007
    0001	     Thomas	LibUnité2		05-05-2007
    0001	     Thomas	LibUnité3		07-05-2007
    0002	     Valérie	LibUnité1		03-05-2007
    0002	     Valérie	LibUnité2		03-05-2007
    0002	     Valérie	LibUnité3		03-05-2007
    ce que j’aimerais, c’est qu’en plus d’aller rechercher ces informations dans la table, ma requête me génère un champs : ordre d’unité (pour le patient).

    L’ordre d’unité serait généré d’après les dates d’entrée (pour un patient) …

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    0001	   Thomas	LibUnité1		03-05-2007	1
    0001	   Thomas	LibUnité2		05-05-2007	2
    0001	   Thomas	LibUnité3		07-05-2007	3
    0002	   Valérie	 LibUnité1		03-05-2007	1
    0002	   Valérie      LibUnité2		03-05-2007	2
    0002	   Valérie	  LibUnité3		03-05-2007	3

    Est-ce possible ?
    Si oui, savez vous m’expliquer comment m'y prendre ?

    Merci beaucoup !!!

  2. #2
    Membre éclairé Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Points : 786
    Points
    786
    Par défaut
    Il te suffit juste de recuperer le dernier caractere de ta colonne Unité non ?

    ou j'ai mal compris

  3. #3
    Membre régulier Avatar de The Molo
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 240
    Points : 99
    Points
    99
    Par défaut
    Non non, les libellés d'unité seront par exemple Salle 41, Salle 20, Gériatrie, ...

    Les libellés n'ont rien a voir avec ça !
    Je veux juste un ordre d'unité qui correspondent au date ...

    Exemple :
    Le patient a été dans ces différentes unités :

    - UnitéGériatrie 13-05-2007 C'est la 1er unité ds laquel il est passé donc mettre ordre unité = 1

    - UnitéSoins 15-05-2007 C'est la 2ème unité ds laquel il est passé donc mettre ordre unité = 2


    - UnitéRevalidation 17-05-2007 C'est la 3ème unité ds laquel il est passé donc mettre ordre unité = 3


    Je veux simplement suivre l'ordre des unités suivant les dates d'entrée
    => mettre le numéro d'ordre correspondant...

  4. #4
    Membre éprouvé
    Avatar de Sivrît
    Profil pro
    Inscrit en
    Février 2006
    Messages
    953
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Points : 1 249
    Points
    1 249
    Par défaut
    Idéalement, faire un "order by" et compter dans le code client

    Sinon il y a une solution à base d'autojointure, de "a.date<b.date", de "group by" et de "coun(*)". Pas très performant et à reserver aux faibles volumétries.

    Enfin il y a aussi l'utilisation des variables. Elles ne peuvent pas servir dans la logique de la requête mais pour afficher un numéro ça peut le faire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SET @prev='';
    SET @ct=1;
    SELECT IF(NumPatient=@prev, @ct:=@ct+1, @ct:=1) AS numero,
           @prev:=NumPatient AS NumPatient, [...]
    FROM [...]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. RechDom avec une Requête et Champs Calculé !
    Par Jawad-smart dans le forum IHM
    Réponses: 5
    Dernier message: 14/06/2008, 20h51
  2. Réponses: 3
    Dernier message: 09/02/2007, 19h51
  3. Réponses: 5
    Dernier message: 06/01/2007, 05h48
  4. Modif. Format de champ.txt avec une requête
    Par Gias Service dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 04/07/2006, 19h10
  5. extraire un champ dynamique d'une requête
    Par forzaxelah dans le forum Bases de données
    Réponses: 7
    Dernier message: 14/05/2006, 19h34

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