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 :

Besoin d'aide pour requête de sélection


Sujet :

Langage SQL

  1. #1
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut Besoin d'aide pour requête de sélection
    Bonjour,

    Je possède une table qui regroupe des informations générales de traitement dont voici la définition (SQL Server) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE TABLE [GLOBALEVENT](
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [NATURE] [varchar](20) NULL,
    [ACTION] [varchar](3) NULL,
    [EMETTEUR] [varchar](20) NULL,
    [DESTINATAIRE] [varchar](20) NULL,
    [DATE_CREATION] [datetime] NULL,
    [DATE_TRAITEMENT] [datetime] NULL,
    [STATUT] [varchar](10) NULL,
    [ERREUR] [varchar](100) NULL)
    J'ai ensuite X tables avec des champs différents mais qui reprennent de la table globale :
    • ID


    Le champ NATURE de la table global permet d'identifier quelle table contient les informations, ex :
    Si NATURE = TABLESYS alors il faudra aller chercher les informations dans TABLESYS.

    Les ID sont générés à chaque insertion d'une ligne.
    Mais les informations concernent un paquet à chaque fois.

    Ex sur TABLESYS dont voici la définition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE TABLE [TABLESYS](
    [ID] [int] NOT NULL,
    [NUMSYS] [varchar](15) NULL,
    [ERRORSYS] [varchar](6) NULL,
    [USERSYS] [varchar](3) NULL
    )
    Dans TABLESYS je vais avoir ceci :
    ID NUMSYS ERRORSYS USERSYS
    1 45785 fdsdfzzezre Admin
    2 45785 vdzrzerzr Admin
    5 45785 csdfzezszd Admin
    10 45785 fdsdfzzezre Admin
    12 45785 vdzrzerzr Admin
    13 45785 csdfzezszd Admin

    Dans la table GLOBALEVENT je vais avoir ceci :
    ID NATURE DATE_CREATION DATE_TRAITEMENT STATUT ERREUR
    1 TABLESYS XXXXXXXX XXXXXXX XXXXX XXXXXX
    2 TABLESYS XXXXXXXX XXXXXXX XXXXX XXXXXX
    3 TABLEOTHERX XXXXXXXX XXXXXXX XXXXX XXXXXX
    4 TABLEOTHERY XXXXXXXX XXXXXXX XXXXX XXXXXX
    5 TABLESYS XXXXXXXX XXXXXXX XXXXX XXXXXX
    6 TABLEOTHERZ XXXXXXXX XXXXXXX XXXXX XXXXXX
    10 TABLESYS XXXXXXXX XXXXXXX XXXXX XXXXXX
    11 TABLEOTHERZ XXXXXXXX XXXXXXX XXXXX XXXXXX
    12 TABLESYS XXXXXXXX XXXXXXX XXXXX XXXXXX
    13 TABLESYS XXXXXXXX XXXXXXX XXXXX XXXXXX

    Ce que je remarque c'est du coup que dans TABLESYS mon NUMSYS a été inscrit deux fois à deux moments différents.
    Et j'ai besoin de faire une requête qui me donnerais du coup MIN(ID) et MAX(ID) de chaque traitement séparé.

    En sachant que DATE_CREATION de GLOBALEVENT pour un paquet se suit à peut prêt (les secondes augmentent et on peut changer de minutes).
    Par contre lorsqu'un deuxième est inscrit, il y a un décalage dans le datetime.

    Je n'ai pour le moment pas réussi à faire cela

    J’espère avoir été clair

    Merci pour votre aide !
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 912
    Points
    38 912
    Billets dans le blog
    9
    Par défaut
    J'avoue ne pas bien comprendre le besoin, toutefois j'ai quelques remarques.

    Dans la table GLOBALEVENT, la colonne NATURE contient le nom des tables.
    Le but est-il de faire du SQL dynamique en fonction de ce qui est lu dans GLOBALEVENT.NATURE ?
    Soit les différentes tables possibles ont des rubriques communes et seules ces rubriques de mêmes noms et mêmes définitions (quelle que soit la table d'origine)
    seront lues par la requête dynamique, soit la génération de la requête dynamique va vite devenir une usine à gaz.

    Pourquoi déclarer toutes les colonnes en varchar ? C'est moins facile à utiliser que du char et pour une longueur de 3 l'intérêt est nul puisqu'il y a 2 octets pour la longueur du champ.

    Sans compter le risque de désorganisation et le temps de réponse plus long en cas d'update si la longueur augmente.

    En dessous de 15 ou 20 caractères il vaut mieux utiliser du char que du varchar.

    Dernière remarque, concernant le DDL, les clauses Label et/ou Remark sur les tables colonnes sont très utiles, mais malheureusement trop rarement utilisées

  3. #3
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Ce n'est pas moi qui ai créé les tables, ni l'application qui les exploitent

    Je ne peux malheureusement pas changer quoi que ce soit, même si en effet cela laisse grandement à désirer.

    Le besoin est de pouvoir relancer le dernier traitement écrit en base via une requête de sélection qui se chargera de trouver la dernière plage d'insertion.
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  4. #4
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Les champs dans les tables de données n'ont pas tous le même nom malheureusement

    Mais si déjà j'ai une requête pour une table, je l'adapterais pour les autres
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  5. #5
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Dans TABLESYS je vais avoir ceci :
    ID NUMSYS ERRORSYS USERSYS
    1 45785 fdsdfzzezre Admin
    2 45785 vdzrzerzr Admin
    5 45785 csdfzezszd Admin
    10 45785 fdsdfzzezre Admin
    12 45785 vdzrzerzr Admin
    13 45785 csdfzezszd Admin
    Ce que je remarque c'est du coup que dans TABLESYS mon NUMSYS a été inscrit deux fois à deux moments différents.
    Euh... dans votre exemple, c'est le même NUMSYS pour toutes les lignes !

    Et j'ai besoin de faire une requête qui me donnerais du coup MIN(ID) et MAX(ID) de chaque traitement séparé.
    Un traitement correspond à quoi ? Une ligne dans la table GLOBALEVENT ?

    Dans votre exemple, il n'y a aucun ID répété dans TABLESYS donc l'ID min et max d'un traitement, c'est l'ID !

    Ou alors je n'ai rien compris ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  6. #6
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Oui le NUMSYS est le même pour toutes les lignes d'un paquet.
    Un traitement correspond justement à un paquet de NUMSYS, mais en fonction de son heure de création.

    Le min et max doivent me renvoyer les id commun entre TABLESYS et GLOBALEVENT.

    Ce n'est pas simple à expliquer car la manière de faire est vraiment tordue ça c'est claire
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  7. #7
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Je n'ai toujours pas compris !
    Lis la phrase en bleu de ma signature et applique son principe. Sois rigoureux dans les termes que tu emploies pour faciliter la compréhension, donne un exemple de données et le résultat attendu...
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  8. #8
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Je suis parfaitement d'accord avec la phrase de ta signature
    Mais dans le cas ou l'on a pas la maîtrise de la chose et que l'on est obligé dé faire avec

    Alors pour une exemple, table GLOBALEVENT :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    ID	NATURE	ACTION	EMETTEUR	DESTINATAIRE	DATE_CREATION	DATE_TRAITEMENT	STATUT	ERREUR
    56698029	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:01.413	2015-02-03 17:50:03.000	ERREUR	NON TRAITE SUITE ERREUR SUR ID 56698018
    56698027	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:01.397	2015-02-03 17:50:03.000	ERREUR	NON TRAITE SUITE ERREUR SUR ID 56698018
    56698025	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:01.367	2015-02-03 17:50:03.000	ERREUR	NON TRAITE SUITE ERREUR SUR ID 56698018
    56698023	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:01.350	2015-02-03 17:50:03.000	ERREUR	NON TRAITE SUITE ERREUR SUR ID 56698018
    56698021	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:01.333	2015-02-03 17:50:03.000	ERREUR	NON TRAITE SUITE ERREUR SUR ID 56698018
    56698019	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:01.303	2015-02-03 17:50:03.000	ERREUR	NON TRAITE SUITE ERREUR SUR ID 56698018
    56698018	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:01.287	2015-02-03 17:50:03.000	ERREUR	MD1150119002: Commande 0008948858 annulée
    56698016	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:01.270	2015-02-03 17:50:03.000	ERREUR	NON TRAITE SUITE ERREUR SUR ID 56698018
    56698014	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:01.257	2015-02-03 17:50:03.000	ERREUR	NON TRAITE SUITE ERREUR SUR ID 56698018
    56698012	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:01.223	2015-02-03 17:50:03.000	ERREUR	NON TRAITE SUITE ERREUR SUR ID 56698018
    56698010	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:01.210	2015-02-03 17:50:03.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56698018
    56698008	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:01.193	2015-02-03 17:50:03.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56698018
    56698006	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:01.163	2015-02-03 17:50:03.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56698018
    56698004	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:01.100	2015-02-03 17:50:03.000	ERREUR	NON TRAITE SUITE ERREUR SUR ID 56698018
    56698002	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:01.037	2015-02-03 17:50:03.000	ERREUR	NON TRAITE SUITE ERREUR SUR ID 56698018
    56697999	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:00.943	2015-02-03 17:50:03.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56698018
    56697995	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:00.867	2015-02-03 17:50:03.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56698018
    56697993	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:00.833	2015-02-03 17:50:03.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56698018
    56697991	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:00.803	2015-02-03 17:50:03.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56698018
    56697989	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:00.757	2015-02-03 17:50:03.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56698018
    56697987	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:00.723	2015-02-03 17:50:03.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56698018
    56697985	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:00.710	2015-02-03 17:50:03.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56698018
    56697983	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:00.693	2015-02-03 17:50:03.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56698018
    56697981	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:00.663	2015-02-03 17:50:03.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56698018
    56697979	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:00.647	2015-02-03 17:50:03.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56698018
    56697977	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:00.630	2015-02-03 17:50:03.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56698018
    56697975	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:00.600	2015-02-03 17:50:03.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56698018
    56697973	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:00.583	2015-02-03 17:50:03.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56698018
    56697972	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:00.553	2015-02-03 17:50:03.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56698018
    56697970	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:00.537	2015-02-03 17:50:03.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56698018
    56697968	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:00.520	2015-02-03 17:50:03.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56698018
    56697966	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:00.507	2015-02-03 17:50:03.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56698018
    56697964	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:00.473	2015-02-03 17:50:03.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56698018
    56697963	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:00.460	2015-02-03 17:50:03.000	ERREUR	NON TRAITE SUITE ERREUR SUR ID 56698018
    56697961	TABLESYS	ADD	SYS1	SYSG	2015-02-03 17:48:00.443	2015-02-03 17:50:03.000	ERREUR	NON TRAITE SUITE ERREUR SUR ID 56698018
    56691648	TABLESYS	ADD	SYS1	SYSG	2015-02-03 16:26:22.583	2015-02-03 16:30:04.000	ERREUR	NON TRAITE SUITE ERREUR SUR ID 56691631
    56691645	TABLESYS	ADD	SYS1	SYSG	2015-02-03 16:26:22.567	2015-02-03 16:30:04.000	ERREUR	NON TRAITE SUITE ERREUR SUR ID 56691631
    56691642	TABLESYS	ADD	SYS1	SYSG	2015-02-03 16:26:22.553	2015-02-03 16:30:04.000	ERREUR	NON TRAITE SUITE ERREUR SUR ID 56691631
    56691639	TABLESYS	ADD	SYS1	SYSG	2015-02-03 16:26:22.520	2015-02-03 16:30:04.000	ERREUR	NON TRAITE SUITE ERREUR SUR ID 56691631
    56691636	TABLESYS	ADD	SYS1	SYSG	2015-02-03 16:26:22.507	2015-02-03 16:30:04.000	ERREUR	NON TRAITE SUITE ERREUR SUR ID 56691631
    56691633	TABLESYS	ADD	SYS1	SYSG	2015-02-03 16:26:22.473	2015-02-03 16:30:04.000	ERREUR	NON TRAITE SUITE ERREUR SUR ID 56691631
    56691631	TABLESYS	ADD	SYS1	SYSG	2015-02-03 16:26:22.460	2015-02-03 16:30:04.000	ERREUR	MD1150119002: Commande 0008948858 annulée
    56691628	TABLESYS	ADD	SYS1	SYSG	2015-02-03 16:26:22.443	2015-02-03 16:30:04.000	ERREUR	NON TRAITE SUITE ERREUR SUR ID 56691631
    56691625	TABLESYS	ADD	SYS1	SYSG	2015-02-03 16:26:22.410	2015-02-03 16:30:04.000	ERREUR	NON TRAITE SUITE ERREUR SUR ID 56691631
    56691622	TABLESYS	ADD	SYS1	SYSG	2015-02-03 16:26:22.397	2015-02-03 16:30:04.000	ERREUR	NON TRAITE SUITE ERREUR SUR ID 56691631
    56691619	TABLESYS	ADD	SYS1	SYSG	2015-02-03 16:26:22.380	2015-02-03 16:30:04.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56691631
    56691616	TABLESYS	ADD	SYS1	SYSG	2015-02-03 16:26:22.350	2015-02-03 16:30:04.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56691631
    56691613	TABLESYS	ADD	SYS1	SYSG	2015-02-03 16:26:22.333	2015-02-03 16:30:04.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56691631
    56691610	TABLESYS	ADD	SYS1	SYSG	2015-02-03 16:26:22.303	2015-02-03 16:30:04.000	ERREUR	NON TRAITE SUITE ERREUR SUR ID 56691631
    56691607	TABLESYS	ADD	SYS1	SYSG	2015-02-03 16:26:22.287	2015-02-03 16:30:04.000	ERREUR	NON TRAITE SUITE ERREUR SUR ID 56691631
    56691602	TABLESYS	ADD	SYS1	SYSG	2015-02-03 16:26:22.240	2015-02-03 16:30:04.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56691631
    56691595	TABLESYS	ADD	SYS1	SYSG	2015-02-03 16:26:22.177	2015-02-03 16:30:04.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56691631
    56691592	TABLESYS	ADD	SYS1	SYSG	2015-02-03 16:26:22.160	2015-02-03 16:30:04.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56691631
    56691589	TABLESYS	ADD	SYS1	SYSG	2015-02-03 16:26:22.147	2015-02-03 16:30:04.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56691631
    56691586	TABLESYS	ADD	SYS1	SYSG	2015-02-03 16:26:22.113	2015-02-03 16:30:04.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56691631
    56691583	TABLESYS	ADD	SYS1	SYSG	2015-02-03 16:26:22.100	2015-02-03 16:30:04.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56691631
    56691580	TABLESYS	ADD	SYS1	SYSG	2015-02-03 16:26:22.083	2015-02-03 16:30:04.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56691631
    56691577	TABLESYS	ADD	SYS1	SYSG	2015-02-03 16:26:22.053	2015-02-03 16:30:04.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56691631
    56691574	TABLESYS	ADD	SYS1	SYSG	2015-02-03 16:26:22.037	2015-02-03 16:30:04.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56691631
    56691571	TABLESYS	ADD	SYS1	SYSG	2015-02-03 16:26:22.007	2015-02-03 16:30:04.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56691631
    56691568	TABLESYS	ADD	SYS1	SYSG	2015-02-03 16:26:21.973	2015-02-03 16:30:04.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56691631
    56691565	TABLESYS	ADD	SYS1	SYSG	2015-02-03 16:26:21.960	2015-02-03 16:30:04.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56691631
    56691562	TABLESYS	ADD	SYS1	SYSG	2015-02-03 16:26:21.927	2015-02-03 16:30:04.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56691631
    56691560	TABLESYS	ADD	SYS1	SYSG	2015-02-03 16:26:21.910	2015-02-03 16:30:04.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56691631
    56691557	TABLESYS	ADD	SYS1	SYSG	2015-02-03 16:26:21.880	2015-02-03 16:30:04.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56691631
    56691554	TABLESYS	ADD	SYS1	SYSG	2015-02-03 16:26:21.863	2015-02-03 16:30:04.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56691631
    56691551	TABLESYS	ADD	SYS1	SYSG	2015-02-03 16:26:21.850	2015-02-03 16:30:04.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID 56691631
    56691548	TABLESYS	ADD	SYS1	SYSG	2015-02-03 16:26:21.817	2015-02-03 16:30:04.000	ERREUR	TRAITEMENT ANNULE SUITE ERREUR SUR ID
    Dans la table TABLESYS :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    id	numsys	erorsys	daterr	heuerr
    56698029	MD1150119002	38949424010	20150119	1510
    56698027	MD1150119002	38949339030	20150119	1501
    56698025	MD1150119002	38949339020	20150119	1501
    56698023	MD1150119002	38949339010	20150119	1501
    56698021	MD1150119002	38948936010	20150119	1453
    56698019	MD1150119002	38957766010	20150119	1443
    56698018	MD1150119002	38948858010	20150119	1443
    56698016	MD1150119002	38949725010	20150119	1424
    56698014	MD1150119002	38949608010	20150119	1404
    56698012	MD1150119002	38950279010	20150119	1328
    56698010	MD1150119002	38944757010	20150119	1304
    56698008	MD1150119002	38944757020	20150119	1304
    56698006	MD1150119002	38946040010	20150119	1234
    56698004	MD1150119002	38951241010	20150119	1206
    56698002	MD1150119002	38949932010	20150119	1159
    56697999	MD1150119002	38940819010	20150119	1155
    56697995	MD1150119002	38941542030	20150119	1139
    56697993	MD1150119002	38941542020	20150119	1139
    56697991	MD1150119002	38941542010	20150119	1139
    56697989	MD1150119002	38945470010	20150119	1117
    56697987	MD1150119002	38945470020	20150119	1117
    56697985	MD1150119002	38945289010	20150119	1116
    56697983	MD1150119002	38940975010	20150119	1112
    56697981	MD1150119002	38940975020	20150119	1112
    56697979	MD1150119002	38946197010	20150119	1111
    56697977	MD1150119002	38947274010	20150119	1110
    56697975	MD1150119002	38936580010	20150119	1109
    56697973	MD1150119002	38946387010	20150119	1109
    56697972	MD1150119002	38947893010	20150119	1108
    56697970	MD1150119002	38946945010	20150119	1107
    56697968	MD1150119002	38945033010	20150119	1106
    56697966	MD1150119002	38936845010	20150119	1105
    56697964	MD1150119002	38940448010	20150119	1104
    56697963	MD1150119002	39034597010	20150119	1118
    56697961	MD1150119002	39034596010	20150119	1118
    56691648	MD1150119002	38949424010	20150119	1510
    56691645	MD1150119002	38949339030	20150119	1501
    56691642	MD1150119002	38949339020	20150119	1501
    56691639	MD1150119002	38949339010	20150119	1501
    56691636	MD1150119002	38948936010	20150119	1453
    56691633	MD1150119002	38957766010	20150119	1443
    56691631	MD1150119002	38948858010	20150119	1443
    56691628	MD1150119002	38949725010	20150119	1424
    56691625	MD1150119002	38949608010	20150119	1404
    56691622	MD1150119002	38950279010	20150119	1328
    56691619	MD1150119002	38944757010	20150119	1304
    56691616	MD1150119002	38944757020	20150119	1304
    56691613	MD1150119002	38946040010	20150119	1234
    56691610	MD1150119002	38951241010	20150119	1206
    56691607	MD1150119002	38949932010	20150119	1159
    56691602	MD1150119002	38940819010	20150119	1155
    56691595	MD1150119002	38941542030	20150119	1139
    56691592	MD1150119002	38941542020	20150119	1139
    56691589	MD1150119002	38941542010	20150119	1139
    56691586	MD1150119002	38945470010	20150119	1117
    56691583	MD1150119002	38945470020	20150119	1117
    56691580	MD1150119002	38945289010	20150119	1116
    56691577	MD1150119002	38940975010	20150119	1112
    56691574	MD1150119002	38940975020	20150119	1112
    56691571	MD1150119002	38946197010	20150119	1111
    56691568	MD1150119002	38947274010	20150119	1110
    56691565	MD1150119002	38936580010	20150119	1109
    56691562	MD1150119002	38946387010	20150119	1109
    56691560	MD1150119002	38947893010	20150119	1108
    56691557	MD1150119002	38946945010	20150119	1107
    56691554	MD1150119002	38945033010	20150119	1106
    56691551	MD1150119002	38936845010	20150119	1105
    56691548	MD1150119002	38940448010	20150119	1104
    Dans ma table GLOBALEVENT je peux remarque que j'ai deux fois le même traitement en faisant cette requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM GLOBALEVENT WHERE id IN (SELECT ID FROM TABLESYS WHERE numsys = MD1150119002) ORDER BY ID DESC
    Je vois que j'ai un paquet de date de création vers 16h26 et un autre vers 17h48.
    Ces heures correspondes à l'insertions des lignes dans la tables.

    Et ce que je souhaite avoir c'est dans un premier temps en filtrant de la même manière sur un numsys :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RUN    NUMSYS    MINID    MAXID
    1    MD1150119002    56691548    56691648
    2    MD1150119002    56697961    56698029
    Afin de facilement identifié le nombre de lancement ainsi que les plages.
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  9. #9
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par CinePhil
    Sois rigoureux dans les termes que tu emploies pour faciliter la compréhension
    Citation Envoyé par cerede2000
    Dans ma table GLOBALEVENT je peux remarque que j'ai deux fois le même traitement en faisant cette requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM GLOBALSYS WHERE id IN (SELECT ID FROM TABLESYS WHERE numsys = MD1150119002) ORDER BY ID DESC
    Tu parles de la table GLOBALEVENT mais ta requête porte sur les tables GLOBALSYS et TABLESYS !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  10. #10
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Tu parles de la table GLOBALEVENT mais ta requête porte sur les tables GLOBALSYS et TABLESYS !
    Erreur d’écriture de ma part

    C'est bien GLOBALEVENT.
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  11. #11
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Oh purée ! C'est bien GLOBALEVENT où ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  12. #12
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 912
    Points
    38 912
    Billets dans le blog
    9
    Par défaut
    Au départ, j'avais du mal à comprendre le besoin



    Maintenant, avec les explications, c'est pire

    Désolé mais je suis complètement perdu

  13. #13
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Je crois que j'ai compris !
    D'après ce que je vois, ce qui identifie un "traitement" est l'heure de traitement dans la table GLOBALEVENT.
    Donc il faut dans la requête faire une jointure entre les deux tables sur la colonne id, prendre les colonnes numsys, date_traitement et les valeurs min/max de id le tout groupé par numsys et date_traitement.
    Et il me semble que normalement on devrais peut-être approcher du résultat demandé...

    Tatayo.

  14. #14
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    @tatayo : Oui c'est ça
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  15. #15
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Pouvez vous m'aider ?
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  16. #16
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    Il te suffit de traduire en SQL ce que j'ai dit dans mon dernier message, ce qui ne devrait pas être très compliqué...

    Tatayo.

  17. #17
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    J'ai déjà essayé, ce qui me bloque déjà c'est le regroupement de la colonne date_traitement.

    Comment regroupé les datetime sur un écart de secondes ou de minutes ?
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  18. #18
    Membre éclairé Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Points : 870
    Points
    870
    Par défaut
    Citation Envoyé par cerede2000 Voir le message
    J'ai déjà essayé, ce qui me bloque déjà c'est le regroupement de la colonne date_traitement.

    Comment regroupé les datetime sur un écart de secondes ou de minutes ?
    Genre, s'il y a moins d'une minute d'ecart, tu regroupes, c'est ca ?
    hmm, soit tu casts, soit tu arrondis je pense. Si tu castes la partie min-ss en chiffres (decimaux) et que tu balances une fonction d'arrondi dessus, tu regles tout sur la minute la plus proche.
    L'autre solution, c'est tronquer les secondes comme ca, toutes les valeurs sur la meme minutes se regroupent....
    Après, je suis pas certain des perf par contre

    Je sais pas ce qui est le plus juste fonctionnellement parlant par contre

  19. #19
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Dans votre exemple de données, on voit que la colonne DATE_TRAITEMENT est la même poru toutes les lignes d'un traitement (contrairement à la colonne DATE_CREATION)
    Pourquoi ne pas l'utiliser pour pour discriminer les différents groupements ?

Discussions similaires

  1. [SQL Server 2005] Besoin d'aide pour requête
    Par Definol dans le forum Langage SQL
    Réponses: 5
    Dernier message: 18/07/2007, 13h55
  2. Besoin d'aide pour requête SQL
    Par dinver78 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 21/05/2007, 18h20
  3. Besoin d'aide pour requête simple
    Par vallica dans le forum Requêtes
    Réponses: 6
    Dernier message: 16/02/2007, 09h33
  4. Besoin d'aide pour requête SQL
    Par vallica dans le forum Requêtes
    Réponses: 10
    Dernier message: 08/06/2006, 23h16
  5. Besoin d'aide pour requête sur grosse table
    Par Fabouney dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/01/2006, 09h01

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