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 PostgreSQL Discussion :

petit probleme dans une requte POSTGRE SQL


Sujet :

Requêtes PostgreSQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 3
    Points : 2
    Points
    2
    Par défaut petit probleme dans une requte POSTGRE SQL
    salut a tous les rois du SQL j ai un gros souci !!! A l'AIIIIDE !!!

    voila j ai une requete ( assez enorme) qui devrait me permettre de trier les résultats sur les dates mais qui ne fonctionne pas ...j' ai tout testé je ne comprends pas pouquoi elle ne fonctionne pas ... le tri me donne la liste avec un tri par date mais totalement faux !!!

    voila la requete (accrochez vou !!! ):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((select a.id_utilisateur, a.nom_uti as Nom, a.prenom_uti as Prénom, a.poste_uti as Poste, '-'||'' as Niveau, to_char(a.date_entree_uti,'dd-mm-yyyy') as Date_entrée, to_char(a.dernier_log_uti,'dd-mm-yyyy') as Dernier_login, to_char(a.hdernier_log_uti,'hh24:mi')as hdernier_login, '-'||'' as Moyenne from participe b ,utilisateur a where b.id_formation=2 and b.inscrit=true and b.id_utilisateur=a.id_utilisateur and a.poste_uti='SUP') UNION ((select a.id_utilisateur, a.nom_uti as Nom, a.prenom_uti as Prénom, a.poste_uti as Poste, b.niveau as Niveau, to_char(a.date_entree_uti,'dd-mm-yyyy') as Date_entrée, to_char(b.dernier_login,'dd-mm-yyyy') as Dernier_login, to_char(b.hdernier_login,'hh24:mi')as hdernier_login, to_char(avg(c.points),'99.99%') as Moyenne from participe b ,utilisateur a, repond c where b.id_formation=2 and b.inscrit=true and b.id_utilisateur=a.id_utilisateur and b.id_utilisateur=c.id_utilisateur and b.id_formation=c.id_formation group by a.id_utilisateur, Nom, Prénom, Poste, Niveau, Date_entrée, Dernier_login, hdernier_login )Union( select a.id_utilisateur, a.nom_uti as Nom, a.prenom_uti as Prénom, a.poste_uti as Poste, b.niveau as Niveau, to_char(a.date_entree_uti,'dd-mm-yyyy') as Date_entrée, '-'||'' as Dernier_login, '-'||'' as hdernier_login, '-'||'' as Moyenne from participe b ,utilisateur a where b.id_formation=2 and b.inscrit=true and b.id_utilisateur=a.id_utilisateur and a.poste_uti='TA' and not exists(select * from moyenne_ta_formation c where c.id_utilisateur=a.id_utilisateur and b.id_formation=c.id_formation))))order by poste, dernier_login desc
    balises Code ajoutées par armatatuxa
    merci d'y penser !

  2. #2
    Membre chevronné
    Avatar de Bidouille
    Inscrit en
    Mars 2003
    Messages
    1 279
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 1 279
    Points : 1 996
    Points
    1 996
    Par défaut
    Et le rapport avec PHP, il est où ?

    Modo : merci de supprimer ce message une fois le fil déplacé.
    Rédacteur PHP / Delphi ADO / Novell / OpenOffice.org

    Inutile de m'envoyer vos questions par MP, je ne réponds que par le forum.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    c une requete que je fais dans une page php ...autant pour moi

  4. #4
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 146
    Points : 172
    Points
    172
    Par défaut
    ta requete est illisible!

    1) peux tu l'organiser un peu mieux avec des retours chariots?
    2) est ce que tu peux donner la structure des tables?

    et déjà une simple remarque, il est ou le tri sur la date, t'as oublié de le faire il me semble!!!

    @+

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    excusez moi pour la lisibilité je recommence :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    ((select a.id_utilisateur, a.nom_uti as Nom, a.prenom_uti as Prénom, a.poste_uti as Poste, '-'||'' as Niveau, to_char(a.date_entree_uti,'dd-mm-yyyy') as Date_entrée, to_char(a.dernier_log_uti,'dd-mm-yyyy') as Dernier_login, to_char(a.hdernier_log_uti,'hh24:mi')as hdernier_login, '-'||'' as Moyenne
     
    from participe b ,utilisateur a where b.id_formation=2 and b.inscrit=true and b.id_utilisateur=a.id_utilisateur and a.poste_uti='SUP')
     
    UNION ((
     
    select a.id_utilisateur, a.nom_uti as Nom, a.prenom_uti as Prénom, a.poste_uti as Poste, b.niveau as Niveau, to_char(a.date_entree_uti,'dd-mm-yyyy') as Date_entrée, to_char(b.dernier_login,'dd-mm-yyyy') as Dernier_login, to_char(b.hdernier_login,'hh24:mi')as hdernier_login, to_char(avg(c.points),'99.99%') as Moyenne
     
    from participe b ,utilisateur a, repond c 
     
    where b.id_formation=2 and b.inscrit=true and b.id_utilisateur=a.id_utilisateur and b.id_utilisateur=c.id_utilisateur and b.id_formation=c.id_formation group by a.id_utilisateur, Nom, Prénom, Poste, Niveau, Date_entrée, Dernier_login, hdernier_login )
     
    Union(
     
    select a.id_utilisateur, a.nom_uti as Nom, a.prenom_uti as Prénom, a.poste_uti as Poste, b.niveau as Niveau, to_char(a.date_entree_uti,'dd-mm-yyyy') as Date_entrée, '-'||'' as Dernier_login, '-'||'' as hdernier_login, '-'||'' as Moyenne 
     
    from participe b ,utilisateur a
     
    where b.id_formation=2 and b.inscrit=true and b.id_utilisateur=a.id_utilisateur and a.poste_uti='TA' 
    and not exists(select * from moyenne_ta_formation c where c.id_utilisateur=a.id_utilisateur and b.id_formation=c.id_formation))))order by poste, dernier_login desc
    voila la requete un peu espacé ... le tri sur la date se fait a l afin order by poste, dernier_login desc ( dernier_login est un champ de type date)

    merci d avance , j en peux plus de cette requete surtout que c'est pas moi qui l'est faite !!!

    merci d'avance!!!

  6. #6
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 146
    Points : 172
    Points
    172
    Par défaut
    en fait vu qut tu fais un order by sur deux colonnes, le système fait le ordey by selon poste et ensuite en cas d'aglité il effectue l'order by selon la date. Donc il faudrait peut être les inverser.

Discussions similaires

  1. Probleme dans une requête
    Par bertie312 dans le forum Access
    Réponses: 5
    Dernier message: 04/07/2013, 16h52
  2. Réponses: 2
    Dernier message: 10/12/2012, 12h23
  3. Probleme dans une requête
    Par LP-mpascolo dans le forum Langage SQL
    Réponses: 3
    Dernier message: 20/09/2007, 16h39
  4. [SQL] Probleme de TOP dans une requête
    Par boutts dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 24/05/2006, 10h49
  5. petit probleme dans une requte POSTGRE SQL
    Par ghis le fou dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 08/09/2003, 13h51

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