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 et SQL. Discussion :

Différence entre 1 même champ sur 2 enregistrements d'une même table


Sujet :

Requêtes et SQL.

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 12
    Points : 7
    Points
    7
    Par défaut Différence entre 1 même champ sur 2 enregistrements d'une même table
    Salut à tous,
    Je cherche à faire une requête avec MaTable (ci-dessous) qui consiste à indiquer la durée de chacun de mes états.

    Date;Etat
    06/02/08 20:10:00;1
    06/02/08 20:15:00;0
    06/02/08 20:16:00;1
    06/02/08 20:17:00;0

    Si quelqu'un à une idée sous le coude, ça serait cool!!!!
    Merci!!!

  2. #2
    Membre éclairé Avatar de ft035580
    Profil pro
    Inscrit en
    Août 2004
    Messages
    689
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 689
    Points : 812
    Points
    812
    Par défaut
    Durée .......???

    D'ouverture?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    désolé je me suis mal expliqué...
    Il s'agit d'indiquer la durée de chacun de mes états....Par exemple, pour la 1ere ligne, on récupérerait une durée de 5min pour l'état 1, puis pour la 2ième 1min pour l'état 0,etc...

    Le champ date repésente le moment ou Etat change de valeur.

    Date;Etat
    06/02/08 20:10:00;1
    06/02/08 20:15:00;0
    06/02/08 20:16:00;1
    06/02/08 20:17:00;0

  4. #4
    Expert éminent sénior

    Avatar de Siguillaume
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2007
    Messages
    6 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 6 180
    Points : 25 358
    Points
    25 358
    Par défaut
    Bonjour.
    Les requetes reposent sur des attributs d'une table donnee.
    Sur quelle table s'appuie ton formulaire, quels sont les attributs?
    La requete pourrait porter soit directement sur le champ qui contient la duree, soit subir d'abord une petite operation (datediff, par exemple), sur le chmap concerne.
    Soit encore plus explicite.
    Bon courage!

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Euh les attributs...
    Je vais vous expliquer le contexte...En faite j'utilise un outil de reporting qui s'appelle Dream Report qui me génère une base de données ACCESS avec les données envoyées par une application de supervision.
    Dans ma base de données access je sais que j'ai deux champs:
    - Date (datetime)
    - Etat (int)

    Et pi c'est tout...Ah si j'y connais rien en access ce qui n'arrange pas les choses .

    Je cherche surtout à faire pour les enregistrements suivants :

    Date;Etat
    06/02/08 20:10:00;1
    06/02/08 20:15:00;0

    -> 06/02/08 20:15:00 - 06/02/08 20:10:00 = 5min

    de ce faite la requête que je n'arrive pas à faire me renverrai ceci:
    Date;Etat,Duree
    06/02/08 20:10:00;1;00:05:00

    voili voila....c'est pas simple hein?!

    merci & A+

  6. #6
    Expert éminent sénior

    Avatar de Siguillaume
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2007
    Messages
    6 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 6 180
    Points : 25 358
    Points
    25 358
    Par défaut
    Citation Envoyé par manulemalin Voir le message
    Euh les attributs...
    C'est les champs.

    Citation Envoyé par manulemalin Voir le message
    Dans ma base de données access je sais que j'ai deux champs:
    - Date (datetime)
    - Etat (int)
    Ce qui veut dire qu'il n'ya qu'une seule table.
    Citation Envoyé par manulemalin Voir le message
    de ce faite la requête que je n'arrive pas à faire me renverrai ceci:
    Date;Etat,Duree
    06/02/08 20:10:00;1;00:05:00
    Je te propose:
    - d'ajouter d'abord un champ qui va contenir cette durée
    - de remplir ce champ grâce à un code VBA, (je n'ai pas trouvé comment le faire avec une requête) vu qu'il doit sousraitre avec une valeur prise dans l'enregistrement suivant.
    - d'afficher le tout dans l'état.

    Merci et bon courage.

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select debut,fin, cdate(fin-debut) as duree from
    (SELECT (select max(madate) from matable where madate<a.madate and etat=1) AS debut, a.madate AS fin
    FROM matable AS a
    WHERE a.etat=0) as tempo;

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Eh bah elle marche bien cette requete....c'est cool...Merci

    En bonus, comment je fais pour récupérer, si c'est jouable, l'état en cours?

    Merci!!!

  9. #9
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select etat from matable where madate=(select max madate from matable);
    avec un bémol c'est que l'état peut avoir changé entre temps

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    MErci pour ton aide !
    c'est cool...
    Juste une question en l'air...ta dernière requette, n'y a t'il pas moyen de l'imbriqué dans celle d'avant?
    Merci & A+

Discussions similaires

  1. Réponses: 7
    Dernier message: 08/08/2011, 11h42
  2. Réponses: 1
    Dernier message: 05/06/2011, 10h37
  3. [MySQL] modifier le début de deux champs dans plusieurs enregistrements d'une même table
    Par corbin dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 19/04/2011, 09h40
  4. Faire la différence entre texte et photos sur une image
    Par NiuAge dans le forum Traitement d'images
    Réponses: 12
    Dernier message: 23/02/2007, 23h45
  5. Réponses: 7
    Dernier message: 13/12/2006, 12h57

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