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

Langage SQL Discussion :

Problème de requête SQL


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 159
    Par défaut Problème de requête SQL
    Salut,

    J'ai la table suivante:

    Elt_id | valeur | date_traitement

    Cette table est remplie après certains traitements. Pour un meme element (donc pour un meme id) il est possible qu'il y ait deux date_traitement et deux valeur

    On a le cas de figure suivant:

    id1 | val1.1 |date1
    id1 | val1.2 |date2
    id2 | val2.1 |date1
    id2 | val2.2 |date2
    ...


    Il est à noter que date1 et date2 sont de la forme suivante:
    jj/mm/aa hh:mm:ss
    et dans mon cas, c'est juste l'horaire qui est différents entre date1 et date2... ce qui complique un peu les choses...

    Ce que je souhaite faire, par requête SQL, est obtenir à partie de la table ci-dessus la table suivante:

    id1 | val1.1 | val1.2| date1 | date2 | val1.1-val1.2


    comme vous voyez mon but est de comparer les deux valeurs calculées à deux dates différentes pour un même élément.

    J'arrive pas à trouver la bonne requête

    Pouvez vous m'aider?

    Merci

  2. #2
    Membre chevronné Avatar de elbj
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Services à domicile

    Informations forums :
    Inscription : Novembre 2004
    Messages : 371
    Par défaut
    Bonsoir

    Ce que vous voulez faire c'est de la cosmétique et un SGBD n'est pas fait pour ça. C'est au programme client qu'incombe la chage de tels traitements. Excel le fait très bien par exemple.

    Cordialement

  3. #3
    Membre Expert Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Par défaut
    Citation Envoyé par elbj Voir le message
    Bonsoir

    Ce que vous voulez faire c'est de la cosmétique et un SGBD n'est pas fait pour ça. C'est au programme client qu'incombe la chage de tels traitements. Excel le fait très bien par exemple.

    Cordialement
    Bonjour,

    Je ne suis absolument pas d'accord : ce que vonemya demande n'est pas du tout cosmétique, puisqu'il s'agit de comparer des valeurs d'attributs pour des lignes :
    comme vous voyez mon but est de comparer les deux valeurs calculées à deux dates différentes pour un même élément.
    Merci de lire l'énoncé avant de porter un jugement aussi sec.

    Bon, cela dit, pour répondre à vonemya :
    Il faut que tu fasses simplement l'auto jointure sur ta table, en prenant soin de ne pas mettre en relation un élément avec lui même.
    Si j'ai bien compris, id + date est la clef de la table, puisque lorsque la date est la même, au minimum l'heure change.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT blablabla
    FROM Tatable A, Tatable B
    WHERE A.id = B.id
      AND A.date_traitement > B.date_traitement
    Remarque : on utilise > plutôt que <> pour éviter les d'avoir (val1.1, val1.2) et (val1.2, val1.1)...

  4. #4
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 159
    Par défaut
    merci pacmann

    c'est exactement ce que je voulais
    ta requête marche nickel...

  5. #5
    Membre chevronné Avatar de elbj
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Services à domicile

    Informations forums :
    Inscription : Novembre 2004
    Messages : 371
    Par défaut
    Bonjour

    Merci de lire l'énoncé avant de porter un jugement aussi sec.
    Tu as raison pacmann, j'avais mal lu.
    Je ne pensai pas avoir été aussi sec.
    Toutes mes excuses vonemya.

    Juste pour rebondir sur ta solution. Elle me semblerait mieux ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT blablabla
    FROM Tatable A
      INNER JOIN Tatable B ON A.id = B.id AND A.date_traitement > B.date_traitement
    C'est juste une question de normes SQL.

    Cordialement

  6. #6
    say
    say est déconnecté
    Membre Expert
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Par défaut
    Citation Envoyé par elbj Voir le message
    C'est juste une question de normes SQL.
    c'est plus une question d'habitude, le débat fais rage

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

Discussions similaires

  1. Problème de requête SQL avec instruction TRANSFORM
    Par Nosper dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 21/06/2005, 16h15
  2. problème de requète SQL pour formulaire
    Par en_stage dans le forum Requêtes et SQL.
    Réponses: 15
    Dernier message: 21/06/2005, 12h21
  3. [SQL] Problème de requête SQL de plus de 8060 caractères ?
    Par webtheque dans le forum MS SQL Server
    Réponses: 13
    Dernier message: 06/04/2005, 15h07
  4. [SQLserver2000][SQLServer CE] problème de requête SQL
    Par JBernn dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 27/01/2005, 09h29
  5. Problème de requète SQL dans un Requery
    Par Keraccess dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 22/10/2004, 14h58

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