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 :

Requête dans une requête (débutant)


Sujet :

SQL Oracle

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2019
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2019
    Messages : 18
    Points : 15
    Points
    15
    Par défaut Requête dans une requête (débutant)
    Bonjour,
    désolé je débute dans le SQL mais je souhaiterai rattacher une requête à une autre requête.
    Je m'explique :
    J'ai ce SQL qui me donne le max en OF de chaque article
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Max(WADOCO) "OF",WAAITM "Article"
    FROM PRODDTA.F4801
    GROUP BY WAAITM
    ;
    maintenant que j'ai ce SQL je voudrais lier la gamme de fabrication qui lui est associé en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT WMDOCO, WMOPSQ, WMCPIL, WMDSC1
    FROM F3111;
    sachant que la jointure sera Max(F4108.WADOCO)=F3111.WMDOCO
    comment je construis ce SQL ?

    merci beaucoup

  2. #2
    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,
    Tu peux le faire avec une CTE, une sous-requête...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    with cte as 
    (
    select x,y from UneTable
    )
    select z
    from UneAutreTable
    inner join CTE on ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select *
    from UneTable as t1
    inner join (select x,y from UneAutreTable where ..) as t2
    on t1.z = t2.y
    Tatayo.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2019
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2019
    Messages : 18
    Points : 15
    Points
    15
    Par défaut
    merci
    J'ai 2 options ? je teste la 2ème...

  4. #4
    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
    Il doit certainement exister d'autres méthodes, ce sont les deux qui me sont venues à l'esprit.

    Je ne connais pas la volumétrie de ta base (ni Oracle), mais je pense que la première est plus efficace.

    Tatayo.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2019
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2019
    Messages : 18
    Points : 15
    Points
    15
    Par défaut
    Bonjour,
    en essayant la 2ème option
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Select Max(WADOCO) , WAAITM, WMOPSQ, WMCPIL, WMDSC1
    FROM PRODDTA.F4801 t1
    inner join (select WMDOCO,WMOPSQ, WMCPIL, WMDSC1 from PRODDTA.f3111 ) t2 on t1.WADOCO = t2.WMDOCO
    where WAAITM = 'xxxxx	'
    GROUP BY WAAITM, WMOPSQ, WMCPIL, WMDSC1 
    order by WAAITM,WMOPSQ
    ;
    j'obtiens :
    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
    MAX(WADOCO)	WAAITM	WMOPSQ	WMCPIL	WMDSC1
    515071	xxxxx	100	         xxxxx	                Libellé du WMCPIL
    515071	xxxxx	100	        307902                   	Libellé du WMCPIL
    564640	xxxxx	50100	336415                   	Libellé du WMCPIL
    456243	xxxxx	50100	307353                   	Libellé du WMCPIL
    564640	xxxxx	50100	502541                   	Libellé du WMCPIL
    506298	xxxxx	50100	306606                   	Libellé du WMCPIL
    575699	xxxxx	50100	316895                   	Libellé du WMCPIL
    506298	xxxxx	50100	336141                   	Libellé du WMCPIL
    456243	xxxxx	50100	307042                   	Libellé du WMCPIL
    506298	xxxxx	50100	306027                   	Libellé du WMCPIL
    489441	xxxxx	50100	327079                   	Libellé du WMCPIL
    456243	xxxxx	50100	327855                   	Libellé du WMCPIL
    506298	xxxxx	50100	306269                   	Libellé du WMCPIL
    506298	xxxxx	50100	326067                   	Libellé du WMCPIL
    506298	xxxxx	50100	504338                   	Libellé du WMCPIL
    506298	xxxxx	50100	106005                   	Libellé du WMCPIL
    506298	xxxxx	50100	209234                   	Libellé du WMCPIL
    575699	xxxxx	50100	506077                   	Libellé du WMCPIL
    575699	xxxxx	50100	514510                   	Libellé du WMCPIL
    506298	xxxxx	50100	514514                   	Libellé du WMCPIL
    575699	xxxxx	50100	544733                   	Libellé du WMCPIL
    506298	xxxxx	50100	306015                   	Libellé du WMCPIL
    575699	xxxxx	50100	544714                   	Libellé du WMCPIL
    506298	xxxxx	50100	326569                   	Libellé du WMCPIL
    506298	xxxxx	50100	336416                   	Libellé du WMCPIL
    506298	xxxxx	50100	510297                   	Libellé du WMCPIL
    575699	xxxxx	50100	514511                   	Libellé du WMCPIL
    575699	xxxxx	50100	536382                   	Libellé du WMCPIL
    506298	xxxxx	50100	306020                   	Libellé du WMCPIL
    506298	xxxxx	50100	306240                   	Libellé du WMCPIL
    506298	xxxxx	50100	326573                   	Libellé du WMCPIL
    538951	xxxxx	50100	509147                   	Libellé du WMCPIL
    489459	xxxxx	50100	106003                   	Libellé du WMCPIL
    489441	xxxxx	50100	327076                   	Libellé du WMCPIL
    506298	xxxxx	50100	306157                   	Libellé du WMCPIL
    489441	xxxxx	50100	327702                   	Libellé du WMCPIL
    506298	xxxxx	50100	306229                   	Libellé du WMCPIL
    538951	xxxxx	50100	509148                   	Libellé du WMCPIL
    488131	xxxxx	50100	509143                   	Libellé du WMCPIL
    506298	xxxxx	50100	306028                   	Libellé du WMCPIL
    506298	xxxxx	50100	306225                   	Libellé du WMCPIL
    506298	xxxxx	50100	306239                   	Libellé du WMCPIL
    564640	xxxxx	50100	306079                   	Libellé du WMCPIL
    456243	xxxxx	50100	307902                   	Libellé du WMCPIL
    564640	xxxxx	50100	514512                   	Libellé du WMCPIL
    575699	xxxxx	50500	306606                   	Libellé du WMCPIL
    575699	xxxxx	50500	306269                   	Libellé du WMCPIL
    575699	xxxxx	50500	336415                   	Libellé du WMCPIL
    575699	xxxxx	50500	306079                   	Libellé du WMCPIL
    575699	xxxxx	50500	306020                   	Libellé du WMCPIL
    575699	xxxxx	50500	306015                   	Libellé du WMCPIL
    575699	xxxxx	50500	106005                   	Libellé du WMCPIL
    575699	xxxxx	50500	326573                   	Libellé du WMCPIL
    575699	xxxxx	50500	306239                   	Libellé du WMCPIL
    575699	xxxxx	50500	306157                   	Libellé du WMCPIL
    575699	xxxxx	50500	306225                   	Libellé du WMCPIL
    575699	xxxxx	50500	336141                   	Libellé du WMCPIL
    575699	xxxxx	50500	306229                   	Libellé du WMCPIL
    575699	xxxxx	50500	326067                   	Libellé du WMCPIL
    575699	xxxxx	50500	326569                   	Libellé du WMCPIL
    575699	xxxxx	50500	509147                   	Libellé du WMCPIL
    575699	xxxxx	50500	509148                   	Libellé du WMCPIL
    575699	xxxxx	50500	510297                   	Libellé du WMCPIL
    575699	xxxxx	50500	514514                   	Libellé du WMCPIL
    575699	xxxxx	50500	306240                   	Libellé du WMCPIL
    512938	xxxxx	50500	336141                   	Libellé du WMCPIL
    575699	xxxxx	50500	502541                   	Libellé du WMCPIL
    575699	xxxxx	50500	306028                   	Libellé du WMCPIL
    575699	xxxxx	50500	504338                   	Libellé du WMCPIL
    575699	xxxxx	50500	336416                   	Libellé du WMCPIL
    575699	xxxxx	50500	514512                   	Libellé du WMCPIL
    575699	xxxxx	50500	306027                   	Libellé du WMCPIL
    489441	xxxxx	52500	116010                   	Libellé du WMCPIL
    575699	xxxxx	52500	327855                   	Libellé du WMCPIL
    575699	xxxxx	52500	307902                   	Libellé du WMCPIL
    564640	xxxxx	52500	327702                   	Libellé du WMCPIL
    575699	xxxxx	52500	327076                   	Libellé du WMCPIL
    575699	xxxxx	52500	307353                   	Libellé du WMCPIL
    575699	xxxxx	52500	307042                   	Libellé du WMCPIL
    575699	xxxxx	52500	327079                   	Libellé du WMCPIL
    575699	xxxxx	52500	209234                   	Libellé du WMCPIL
    575699	xxxxx	52500	327702                   	Libellé du WMCPIL
    Je souhaiterais avoir que les lignes en rouge.

    Je vais quand même tester la 1ère proposition mais je suis pas sûr d'arriver à transposer mes éléments dans ce SQL...

    merci d'avance

  6. #6
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2019
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2019
    Messages : 18
    Points : 15
    Points
    15
    Par défaut
    Je dois faire une erreur mais je sais pas la corriger...

    Nom : Capture1.PNG
Affichages : 78
Taille : 18,0 Ko

    pour info : je n'arrive pas coller le SQL dans le CODE /CODE
    j'ai ce message
    Nom : 2.PNG
Affichages : 80
Taille : 6,1 Ko

  7. #7
    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
    Tu n'as pas préfixé les colonnes dans la requête, donc elle devient difficile à "décrypter".
    Quoi qu'il en soit j'imagine que WMDOCO fait référence à la colonne calculée dans la CTE.
    Si c'est bien le cas il faut lui donner un nom pour qu'elle soit "reconnue" dans la requête principale.
    Ensuite le GROUP BY dans la requête principale ne sert à rien, vu qu'il n'y a aucun regroupement (pas de MIN, MAX, AVG...).

    Tatayo.

    P.S. on ne voit pas la seconde image, donc on n'a pas le message en question. Il serait préférable de mettre ce dernier sous forme de texte.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2019
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2019
    Messages : 18
    Points : 15
    Points
    15
    Par défaut
    Merci Tatayo pour tes suggestions que j'ai bien exploitées.
    Je suis arrivé à créer une CTE que j'ai appelé OFMAX
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    WITH
    OFMAX AS (SELECT Max(WADOCO) as OFmax, WAAITM from PRODDTA.F4801 WHERE WAAITM='016884' GROUP BY WAAITM )
    SELECT OFmax,WAAITM ARTICLE , NOMEN_N0.WMOPSQ SEQ_N_0, NOMEN_N0.WMCPIL COMPOSANT, NOMEN_N0.WMDSC1 LIBELLE From OFMAX
    inner join PRODDTA.f3111 NOMEN_N0 on OFmax.OFmax = NOMEN_N0.WMDOCO
    Order by WMOPSQ;
    Là où je coince et que j'aimerais : c'est que le résultat de ce SQL soit à son tour une CTE que je voudrais décliner avec un autre : comment je procède ?

    Merci d'avance

  9. #9
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 134
    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 134
    Points : 38 557
    Points
    38 557
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    C'est tout simple :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    with CTE1(col1, col2, ..., Coln) as (select ... from ma_table)
       , CTE2(Cola, Colb, ..., Colx) as (select.... from CTE1)

  10. #10
    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
    Tu peux parfaitement chainer des CTE:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    with cte1 as 
    (
    ...),
    cte2 as 
    (
    ...
    ),
    cte3 as
    (
    ...
    )
    ...
    Chaque CTE peut utiliser les CTE précédentes sans aucun problème, et toutes sont utilisables dans la requête finale.

    Tatayo.

  11. #11
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2019
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2019
    Messages : 18
    Points : 15
    Points
    15
    Par défaut
    Merci à vous 2 ! Je vais tester et reviens vous donner des nouvelles

  12. #12
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2019
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2019
    Messages : 18
    Points : 15
    Points
    15
    Par défaut
    Bonjour,
    J'ai testé la méthode de Tatayo et c'est ok.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    with cte1 as 
    (
    ...),
    cte2 as 
    (
    ...
    ),
    cte3 as
    (
    ...
    )
    ...
    Si je veux avoir ça :
    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
    with cte1 as 
    (
    ...),
    cte2 as 
    (
    ...
    ),
    cte3 as
    (
    ...
    )
     
    select .... from cte3  
    Left join cte2 t1 on ...=...
    Left join cte2 t2 on ...=...
    ...
    Est-ce que c'est possible ?
    Merci d'avance

  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
    C'est tout à fait faisable, comme je l'indiquais dans mon dernier message.
    Il suffit d'essayer pour s'en convaincre

    Tatayo.

  14. #14
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2019
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2019
    Messages : 18
    Points : 15
    Points
    15
    Par défaut
    ok
    Mais où je fais faux ?
    Voici mon code (une partie ! car des cte j'en ai 24 ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    TX_H_N0 AS (select iwmmcu, iwmcu, IWSTLF*0.01 Direct_MO , IWSTFF*0.01"Réglage", iwstrf*0.01"Direct MO", iwstrz*0.01"Fixe MO", iwmsfr*0.01"Machine", iwmstf*0.01"Direct Machine", iwmssf*0.01"Fixe Machine"
                    from proddta.F30008
                    where IWledg = '07'and trim(iwmmcu) like '%02040'),
    OFMAX_N7 AS (SELECT ART_N0,PC_N0,SEQ_N0,LIB_OPE_N0,TMO_N0,CompSant_N1,libellé_Cpsant_N1, OFMAX_N1,PC_N1,SEQ_N1,LIB_OPE_N1,TMO_N1,CompSant_N2, libellé_Cpsant_N2, 
                        OFMAX_N2, PC_N2, SEQ_N2, LIB_OPE_N2, TMO_N2, CompSant_N3, libellé_Cpsant_N3, OFMAX_N3, PC_N3, SEQ_N3, LIB_OPE_N3, TMO_N3,CompSant_N4, libellé_Cpsant_N4, 
                        OFMAX_N4, PC_N4, SEQ_N4, LIB_OPE_N4, TMO_N4, CompSant_N5, libellé_Cpsant_N5, OFMAX_N5, PC_N5, SEQ_N5, LIB_OPE_N5, TMO_N5, CompSant_N6, libellé_Cpsant_N6, 
                        OFMAX_N6, PC_N6, SEQ_N6, LIB_OPE_N6, TMO_N6, CompSant_N7, libellé_Cpsant_N7, OFMAX_N0.OFMAX_N0 OFMAX_N7   
                  FROM NOMEN_N7 LEFT join OFMAX_N0 on OFMAX_N0.WAAITM=CompSant_N7 where ART_N0='016884')
    Select  ART_N0,PC_N0,SEQ_N0,LIB_OPE_N0, TMO_N0, Direct_MO, TMO_N0*Direct_MO CT_MO_0,CompSant_N1,libellé_Cpsant_N1, PC_N1,SEQ_N1,LIB_OPE_N1,TMO_N1,CompSant_N2, libellé_Cpsant_N2, 
                         PC_N2, SEQ_N2, LIB_OPE_N2, TMO_N2, CompSant_N3, libellé_Cpsant_N3,  PC_N3, SEQ_N3, LIB_OPE_N3, TMO_N3, CompSant_N4, libellé_Cpsant_N4, 
                         PC_N4, SEQ_N4, LIB_OPE_N4, TMO_N4, CompSant_N5, libellé_Cpsant_N5,  PC_N5, SEQ_N5, LIB_OPE_N5, TMO_N5, CompSant_N6, libellé_Cpsant_N6, 
                         PC_N6, SEQ_N6, LIB_OPE_N6, TMO_N6, CompSant_N7, libellé_Cpsant_N7
                  from OFMAX_N7 Left join TX_H_N0 tx1 on iwmcu=PC_N0
                                Left join TX_H_N0 tx2 on iwmcu=PC_N1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ORA-00918: définition de colonne ambigu
    00918. 00000 -  "column ambiguously defined"
    *Cause:    
    *Action:
    Erreur à la ligne 2, colonne 11*393
    qui correspond à WITH
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    --Officiel
    WITH
    OFMAX_N0
    J'en fais 23 et la 24ème me pose problème... C'est pas ma veine !

  15. #15
    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
    Le message indique que le nom d'une colonne dans la requête est ambigu, donc 2 tables impliquées dans la requête possède une colonne avec le même nom.
    Mais comme la colonne n'est pas préfixée (avec le nom ou l'alias de la table), le moteur ne peut pas savoir de quelle table provient la colonne.

    C'est pour cela qu'il faut toujours préfixer les colonnes dans une requête.

    Tatayo.

  16. #16
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2019
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2019
    Messages : 18
    Points : 15
    Points
    15
    Par défaut
    Ok mais c'est dès que je rajoute la ligne 14 que ça bug pas avant !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                                Left join TX_H_N0 tx2 on iwmcu=PC_N1
    Donc l'erreur, pour moi, se situe dans les lignes du code partagé... mais je ne vois pas

  17. #17
    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
    Dans l'extrait que tu nous montres les colonnes ne sont pas préfixées par le nom/l'alias de la table/la CTE:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Left join TX_H_N0 tx2 on iwmcu=PC_N1
    En lisant ce bout de requête, il est impossible de savoir si la colonne iwmcu est issue de tx2 ou d'une autre table/CTE.

    Donc commence par préfixer toutes les colonnes partout dans la requête.

    Tatayo.

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 15/04/2015, 16h55
  2. Recherche dans une table (débutant)
    Par speedyk62 dans le forum JSF
    Réponses: 5
    Dernier message: 25/08/2009, 14h37
  3. [A-07] Inclure une base dans une base (débutant)
    Par fabilabo dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 15/01/2009, 05h57
  4. Réponses: 1
    Dernier message: 03/07/2008, 11h25
  5. Réponses: 4
    Dernier message: 26/12/2007, 10h39

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