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

SQL Oracle Discussion :

Comment trouver le nb de lignes avec un ecart entre 2 dates


Sujet :

SQL Oracle

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2021
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Comment trouver le nb de lignes avec un ecart entre 2 dates
    Bonjour à tous,
    J'ai une question j'aimerais avoir le nb de ligne par jour (il y a des bcp de transactions quasiment chaque 20sec) depuis le début de l'année par rapport à des codes( plusieurs codes allant de 1 à 300).

    Je m'explique il faut que je trouve le nombre de lignes qui ont un code 1 (un code correspond à un évènement) pour lequel le code 2 se produit en moins de tant de minutes (exemple code 1 = problème code 2 problème réglé) .
    J'ai écris un script de ce genre mais je ne sais pas comment calculer le "temps" pour trouver les lignes renvoyees de code 1 pour lesquelles le code 2 ne se produit pas sous x minutes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Select date, count (*) nb, 
    From table 1 
    Where date >= to_date('01/01/2021', Dd/mm/yyyy')
    And exists code= '1' and exists code='2'
    Groupe by date
    Ordre by date
    Merci d'avance

  2. #2
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Bonjour,
    Une différence de date te donne une fraction de jour : 1/24 = 1h, 1/24/60 = 1 min

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT date, COUNT (*) nb, 
    FROM TABLE t1 
    WHERE date >= TO_DATE('01/01/2021', 'Dd/mm/yyyy')
    AND code= '1' 
    AND EXISTS (SELECT 1 FROM TABLE t2 WHERE t2.date >= to_date('01/01/2021', 'Dd/mm/yyyy') AND t2.code='2' and t2.date - t1.date < 2/24/60)
    Group by date
    Order by date
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2021
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci McM
    Du coup, vu que j'ai 2 tables avec jointures
    Comment je peux faire avec cette façon

    Comment je peux inclure la dedans le fait de faire date - date < x minutes comme tu ma montré

    Merci par avance je suis pas très expérimenté en Sql.

  4. #4
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Il faudrait le modèle de données car ta nouvelle requête ne le montre pas franchement.
    Comment sont définies les tables (colonnes, PK, etc..) et quelles sont les relations entre TRANSA et EVENEMENT ?

    Est-ce qu'une transa = 1 evenement avec lien numtransa+date ?
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2021
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Pk de la table evenement : idvoi, date, numtransa, avec ses colonnes la table evenement est jointe à la table transa

    (Dans ma requête j'ai le fait que les événements 1 et 2 qui se produisent mais sans l'aspect temps au cours du quel on a le code evenement 2 . Moi je veux voir quand le code 1 est réalisé a un moment donne et que le code 2 se produit avant x min (par ex code 1 le 11/11/2020 a 09:58:01 et pour la même transaction code 1 11/11/2021 à 09:58:30))

    Il y a plusieurs codes référencés (plus de 200)
    La table evenement comporte les codes avec les libellés des différents évènements lors d'une transaction

    Merci

  6. #6
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Tu n'as pas besoin de la table TRANSA, juste avec TRANSA_EV

    Tous les transa_eve code 1 depuis le 01/01/2021 pour lesquels il existe un évènement code 2 sur la même transaction+idvoie moins de 2 min après
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT TRUNC(date) jour, COUNT(*) nb 
    FROM TRANSA_EVE e1
    WHERE date > TO_DATE('01.01.2021', 'DD.MM.RRRR')
    AND code = '1'
    AND EXISTS (SELECT 1 FROM TRANSA_EVE e2
    			WHERE e2.numtransa = e1.numtransa
    			AND e2.idvoie = e1.idvoie
    			AND e2.date - e1.date BETWEEN 0 AND 2/24/60
    			AND e2.code='2'
    					)
    GROUP BY TRUNC(date)
    ORDER BY 1
    J'ai rajouté le between 0 and 2/24/60 au cas où tu aurais une succession de code 1, 2, 1, 2

    PS : Si tu as besoin de données de TRANSA, rajoute le jointure dans le FROM TRANSA_EVE e1, TRANSA t ..
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2021
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci pour ton aide McM 😉

Discussions similaires

  1. Comment ecrire sur la meme ligne avec la commane ECHO
    Par juflata dans le forum Windows
    Réponses: 3
    Dernier message: 24/11/2015, 09h06
  2. [XL-2007] Comment connaître le nombre de lignes avec une valeur ?
    Par EFFLYINGJOKER dans le forum Excel
    Réponses: 4
    Dernier message: 13/05/2011, 15h31
  3. Comment trouver un numéro de ligne
    Par Mica--> dans le forum Excel
    Réponses: 2
    Dernier message: 13/01/2009, 08h06
  4. Comment voir les numero de ligne avec visual C++ 6.0
    Par giggs dans le forum Visual C++
    Réponses: 3
    Dernier message: 23/10/2006, 14h23
  5. Comment changer les couleurs des lignes avec displaytag
    Par rlnd23 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 09/10/2006, 13h52

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