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 :

Comparaison d'intervalles de profondeur


Sujet :

Requêtes et SQL.

  1. #1
    Candidat au Club
    Homme Profil pro
    Géologue
    Inscrit en
    Février 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Géologue
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 8
    Points : 2
    Points
    2
    Par défaut Comparaison d'intervalles de profondeur
    Bonjour,

    Mes maigres conaissances dans Access ne me permette pas d'arriver à une solutions eul au problème qui m'occupe. Celui-ci me semble à la base fondamentalement simple, je m'excuse donc de la question, mais je ne trouve nulle part l'équivalent.

    Je dispose de deux tables. Dans la première, j'ai pour un ensemble de sondages, des données de profondeur tous les 10cm puis une valeur numérique asocié
    ex

    Objet profondeur data
    A 0.1 13
    A 0.2 17
    A 0.3 24
    ....
    Z 383.2 45
    Z 383.3 48

    Dans la seconde, j'ai les mêmes objets que dans la première, par contre chaque donnée numérique est cette fois associé à un intervalle de profondeur et donc 4 champs

    Objet from to data
    A 100 103 26
    A 109 125 213
    ...
    Z 380 385 217

    Dans cette seconde table, ile st possible qu'aucun intervalle n'existe pour un objet.

    Ce que je souhaite faire, c'est être capable de récupérer la liste des data de la première table existant à l'interieur des intervalle définit dans ma deuxième et ce pour chaque objet.

    Des idées sur la méthodologie à appliquer?

    Merci à vous

    Arkaos

  2. #2
    Candidat au Club
    Homme Profil pro
    Géologue
    Inscrit en
    Février 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Géologue
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 8
    Points : 2
    Points
    2
    Par défaut Personne...
    Mon probleme n'inspire personne?

  3. #3
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonsoir,

    Effectivement, tel que présenté, il n'est pas évident de proposer quelque chose.
    Tu as 2 tables : table1
    Objet profondeur data
    A 0.1 13
    A 0.2 17
    A 0.3 24
    .... ... ....
    Z 383.2 45
    Z 383.3 48
    et table2
    Objet from to data
    A 100 103 26
    A 109 125 213
    ... ...
    Z 380 385 217

    Dans la seconde, j'ai les mêmes objets que dans la première, par contre chaque donnée numérique est cette fois associé à un intervalle de profondeur et donc 4 champs
    1- Quand tu dis les mêmes objets, est-ce que ça veut dire que : table1.Objet est la même valeur que table2.Objet.
    2- Et : chaque donnée numérique est cette fois associé à un intervalle de profondeur, est-ce que ça veut dire que : table1.profondeur est compris entre table2.from et table2.to ?
    Quel est le rôle des data dans les 2 tables ?? Est-ce que ce sont les "mêmes" valeurs dans les 2 tables ?
    Maintenant ta question :
    Ce que je souhaite faire, c'est être capable de récupérer la liste des data de la première table existant à l'interieur des intervalle définit dans ma deuxième et ce pour chaque objet.
    Est-ce que tu peux indiquer "à la main" le résultat souhaité à partir de tes 2 tables et confirmer mes suppositions?

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  4. #4
    Candidat au Club
    Homme Profil pro
    Géologue
    Inscrit en
    Février 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Géologue
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Je peux imaginer effectivement que ce ne soit pas necessairement tres clair presente comme ca..Merci de t'y interessere en tous cas.

    Pour repondre a tes questions:

    1- Chaque table comporte des donnees associees a des sondages. table1.Objet et table2.Objet. comporte donc des noms de sondages pouvant ou non etre les memes, les donnees associes a chaque table n'existant pas necessairement dans l'autre table pour l'object en question, meme si c'est le cas la plupart du temps.
    L'idee est de pouvoir comparer les donnees, pour chaque objet existant dans la table 2 ET chaque intervalle de profondeur de la table 2

    2- Oui, je cherche a comparer des donnees de profondeur, donc je souhaite recuperer les donnes de ma table 1 existant a l'interieur des intervalles de profondeur defini dans ma table 2

    3- Non les data sont de deux types differents dans les deux tables

    4- J'aurais effectivement du essayer de donner une idee du rendu, cela aurait ete beaucoup plus clair. Voila ce que je souhaiterai donc en terme d'organisation

    Table2. objet Table2.from Table2.To Table2.DATA Table1.Profondeur ( de valeur inclue entre Table2.from et Table2.To si existante) Table1.Data (si existante)

    Je n'arrive malheureusement pas à joindre de pièce-jointe pour une raison obscure, voici néanmoins un exemple de résultats

    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
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
     
    HOLEID from to GT Prof. RTYD
    hd_1636	340.75	341.15	0.0403	340.75	73
    hd_1636	340.75	341.15	0.0403	340.8	52
    hd_1636	340.75	341.15	0.0403	340.9	46
    hd_1636	340.75	341.15	0.0403	341	47
    hd_1636	340.75	341.15	0.0403	341.1	39
    hd_1640	338.55	344.05	0.3677	338.55	22
    hd_1640	338.55	344.05	0.3677	338.6	21
    hd_1640	338.55	344.05	0.3677	338.7	22
    hd_1640	338.55	344.05	0.3677	338.8	23
    hd_1640	338.55	344.05	0.3677	338.9	23
    hd_1640	338.55	344.05	0.3677	339	26
    hd_1640	338.55	344.05	0.3677	339.1	28
    hd_1640	338.55	344.05	0.3677	339.2	29
    hd_1640	338.55	344.05	0.3677	339.3	33
    hd_1640	338.55	344.05	0.3677	339.4	31
    hd_1640	338.55	344.05	0.3677	339.5	35
    hd_1640	338.55	344.05	0.3677	339.6	41
    hd_1640	338.55	344.05	0.3677	339.7	43
    hd_1640	338.55	344.05	0.3677	339.8	40
    hd_1640	338.55	344.05	0.3677	339.9	35
    hd_1640	338.55	344.05	0.3677	340	39
    hd_1640	338.55	344.05	0.3677	340.1	39
    hd_1640	338.55	344.05	0.3677	340.2	36
    hd_1640	338.55	344.05	0.3677	340.3	36
    hd_1640	338.55	344.05	0.3677	340.4	37
    hd_1640	338.55	344.05	0.3677	340.5	38
    hd_1640	338.55	344.05	0.3677	340.6	40
    hd_1640	338.55	344.05	0.3677	340.7	41
    hd_1640	338.55	344.05	0.3677	340.8	42
    hd_1640	338.55	344.05	0.3677	340.9	44
    hd_1640	338.55	344.05	0.3677	341	42
    hd_1640	338.55	344.05	0.3677	341.1	35
    hd_1640	338.55	344.05	0.3677	341.2	36
    hd_1640	338.55	344.05	0.3677	341.3	42
    hd_1640	338.55	344.05	0.3677	341.4	41
    hd_1640	338.55	344.05	0.3677	341.5	34
    hd_1640	338.55	344.05	0.3677	341.6	32
    hd_1640	338.55	344.05	0.3677	341.7	27
    hd_1640	338.55	344.05	0.3677	341.8	20
    hd_1640	338.55	344.05	0.3677	341.9	14
    hd_1640	338.55	344.05	0.3677	342	10
    hd_1640	338.55	344.05	0.3677	342.1	7
    hd_1640	338.55	344.05	0.3677	342.2	6
    hd_1640	338.55	344.05	0.3677	342.3	6
    hd_1640	338.55	344.05	0.3677	342.4	5
    hd_1640	338.55	344.05	0.3677	342.5	5
    hd_1640	338.55	344.05	0.3677	342.6	4
    hd_1640	338.55	344.05	0.3677	342.7	5
    hd_1640	338.55	344.05	0.3677	342.8	4
    hd_1640	338.55	344.05	0.3677	342.9	2
    hd_1640	338.55	344.05	0.3677	343	4
    hd_1640	338.55	344.05	0.3677	343.1	4
    hd_1640	338.55	344.05	0.3677	343.2	4
    hd_1640	338.55	344.05	0.3677	343.3	5
    hd_1640	338.55	344.05	0.3677	343.4	5
    hd_1640	338.55	344.05	0.3677	343.5	5
    hd_1640	338.55	344.05	0.3677	343.6	3
    hd_1640	338.55	344.05	0.3677	343.7	3
    hd_1640	338.55	344.05	0.3677	343.8	3
    hd_1640	338.55	344.05	0.3677	343.9	2
    hd_1640	338.55	344.05	0.3677	344	4
    hd_1640	344.95	345.45	0.015	344.95	3
    hd_1640	344.95	345.45	0.015	345	4
    hd_1640	344.95	345.45	0.015	345.1	6
    hd_1640	344.95	345.45	0.015	345.2	5
    hd_1640	344.95	345.45	0.015	345.3	6
    hd_1640	344.95	345.45	0.015	345.4	3
    hd_1640	345.95	346.85	0.1386	345.95	7
    hd_1640	345.95	346.85	0.1386	346	6
    hd_1640	345.95	346.85	0.1386	346.1	5
    hd_1640	345.95	346.85	0.1386	346.2	3
    hd_1640	345.95	346.85	0.1386	346.3	5
    hd_1640	345.95	346.85	0.1386	346.4	8
    hd_1640	345.95	346.85	0.1386	346.5	11
    hd_1640	345.95	346.85	0.1386	346.6	21
    hd_1640	345.95	346.85	0.1386	346.7	49
    hd_1640	345.95	346.85	0.1386	346.8	75
    hd_1640	367.95	368.35	0.2095	367.95	5
    hd_1640	367.95	368.35	0.2095	368	6
    hd_1640	367.95	368.35	0.2095	368.1	6
    hd_1640	367.95	368.35	0.2095	368.2	7
    hd_1640	367.95	368.35	0.2095	368.3	7
    hd_1642	343.55	343.85	0.0245	343.55	263
    hd_1642	343.55	343.85	0.0245	343.6	213
    hd_1642	343.55	343.85	0.0245	343.7	159
    hd_1642	343.55	343.85	0.0245	343.8	127
    hd_1649	340.25	340.55	0.0132	340.25	17
    hd_1649	340.25	340.55	0.0132	340.3	12
    hd_1649	340.25	340.55	0.0132	340.4	13
    hd_1649	340.25	340.55	0.0132	340.5	7
    hd_1649	357.05	357.45	0.007	357.05	15
    hd_1649	357.05	357.45	0.007	357.1	12
    hd_1649	357.05	357.45	0.007	357.2	13
    hd_1649	357.05	357.45	0.007	357.3	8
    hd_1649	357.05	357.45	0.007	357.4	11
    Merci

    Arkaos

  5. #5
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Proposition de solution :
    1- Déjà mettre une identification unique dans la table Table2. J'ai rajouté un champ "Identifiant", je ne sais pas si Hole_Id peut remplir ce rôle.
    2- Créer une fonction qui permet d'attribuer aux enregistrements de l atable Table1 l'identifiant unique de la table Table2 selon les profondeurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Function TrouverIdTab2(vrProf As Double) As Integer
    Dim rst As DAO.Recordset
    Set rst = CurrentDb.OpenRecordset("Table2", dbOpenDynaset)
        With rst
            Debug.Print "[From]<=" & Replace(vrProf, ",", ".") & " AND [To] >= " & Replace(vrProf, ",", ".")
            .FindFirst "[From]<=" & Replace(Round(vrProf, 2), ",", ".") & " AND [To] >= " & Replace(Round(vrProf, 2), ",", ".")
            If Not .NoMatch Then
                TrouverIdTab2 = ![Identifiant]
            Else
                TrouverIdTab2 = 0
            End If
        End With
    rst.Close: Set rst = Nothing
    End Function
    2- Créer une requête à partir de la table Table1 en rajoutant un nouveau champ avec l'identifiant de la table Table2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Table1.Prof, Table1.RTID, TrouverIdTab2([Prof]) AS Idtable2, Format([Prof],"Fixed") AS f
    FROM Table1;
    3- Créer la requête résultat en liant cette dernière requête avec la table Table2 avec une liaison gauche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Table2.Identifiant, Table2.Hole_Id, Table2.From, Table2.To, Table2.GT, R_Table1AvecIdTable2.Prof, R_Table1AvecIdTable2.RTID, R_Table1AvecIdTable2.Idtable2
    FROM Table2 LEFT JOIN R_Table1AvecIdTable2 ON Table2.Identifiant = R_Table1AvecIdTable2.Idtable2;
    La base exemple est jointe.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  6. #6
    Candidat au Club
    Homme Profil pro
    Géologue
    Inscrit en
    Février 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Géologue
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 8
    Points : 2
    Points
    2
    Par défaut Merci
    Bonjour,

    J'ai regardé ton exemple et ça a l'air nickel.
    Je regarderai dans la journée si ça passe sur mes données et ma base.

    Un grand merci à toi en tous cas pour le temps consacré à mon problème!

    Arkaos

  7. #7
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Attention, les intervalles que tu as fournies dans tes données test ne sont pas "uniques". Certaines sont inclues dans d'autres.

    Bonne continuation,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/11/2014, 22h57
  2. [XL-2010] Split cellule avec ; puis comparaison à un intervalle de toutes ces valeurs
    Par vb_noob dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 18/02/2014, 13h20
  3. Comparaison d'intervalles de jours
    Par Uronkyuu dans le forum Pascal
    Réponses: 0
    Dernier message: 27/11/2012, 18h33
  4. [Débutant] Comparaison 2 courbes avec intervalles de confiances
    Par little.fredo dans le forum MATLAB
    Réponses: 0
    Dernier message: 14/08/2010, 13h27
  5. Réponses: 1
    Dernier message: 04/02/2009, 23h10

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