Bonjour à tous,
J'ai une requête SQL dans une macro Excel pour récupérer mes données directement dans l'ODBC. Je doit la modifier à cause d'une sous-famille de ref qui ne ressort pas comme attendu, l'équipe IT a fait sa requête dans leur système en direct et le résultat est celui attendu, à moi maintenant d'adapter le SQL pour que ça fonctionne pareil et c'est bien là le problème..
Connexion ODBC :
Code : Sélectionner tout - Visualiser dans une fenêtre à part chaineConnexion = "Driver={Client Access ODBC Driver (32-bit)};System=SIPRDOPT;Uid=XX;Pwd=XX+;DBQ=OPADTA"
Requête initiale OK :
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 'Crétaion de la requete SQL SQL = "Select MRNDOC, MRCONS, MRDAMV, MRCFOU, MRREFA,MRCOMV, MRTYMV, Sum(MRQTUC) AS SUMQTT " & _ "From " & _ "( Select MRNDOC, MRCONS, MRDAMV, MRCFOU, MRREFA, MRCOMV, MRTYMV, MRQTUC " & _ "From X_MVREFA " & _ "Where MRCOMV = 'S' And MRCONS <> ' ' AND MRCENT IN ('W4', 'W5') AND MRDAMV >= " & dateDebutSQL & " AND MRDAMV <= " & dateFinSQL & _ " Union All " & _ "Select MRNDOC, MRCONS, MRDAMV, MRCFOU, MRREFA, MRCOMV, MRTYMV, MRQTUC " & _ "From X_MVREFA A " & _ "Where MRCOMV = 'S' AND MRCENT IN ('W4', 'W5') AND MRDAMV >= " & dateDebutSQL & " AND MRDAMV <= " & dateFinSQL & " And MRCONS = ' ' And MRNOMV Not In " & _ "( Select B.MRNOMV " & _ "From X_MVREFA B " & _ "Where B.MRCOMV = 'E' " & _ "And B.MRREFA = A.MRREFA " & _ "And B.MRCENT In ('W4', 'W5')) " & _ ") As Req " & _ "Group By MRNDOC, MRCONS, MRDAMV, MRCFOU, MRREFA, MRCOMV, MRTYMV " & _ "Order By MRREFA "
Requête IT interne :
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 Select MRNDOC, MRCONS, MRDAMV, MRCFOU, MRREFA, ifnull(mcrefa, '') as mcrefa, MRCOMV, MRTYMV, Sum(MRQTUC) AS SUMQTT From ( Select MRNDOC, MRCONS, MRDAMV, MRCFOU, MRREFA, mcrefa, MRCOMV, MRTYMV, MRQTUC From opadta.X_MVREFA left join opadta.x_mvcoli on mrnomv = mcnomv and MRANMV=MCANMV and MRRAMV=MCRAMV Where MRCOMV = 'S' And MRCONS <> ' ' AND MRCENT IN ('W4', 'W5') AND MRDAMV >=20220901 AND MRDAMV <= 20220921 Union All Select MRNDOC, MRCONS, MRDAMV, MRCFOU, MRREFA, mcrefa, MRCOMV, MRTYMV, MRQTUC From opadta.X_MVREFA A left join opadta.x_mvcoli on mrnomv = mcnomv and MRANMV=MCANMV and MRRAMV=MCRAMV Where MRCOMV = 'S' AND MRCENT IN ('W4', 'W5') AND MRDAMV >=20220901 AND MRDAMV <= 20220921 And MRCONS = ' ' And MRNOMV Not In ( Select B.MRNOMV From opadta.X_MVREFA B Where B.MRCOMV = 'E' And B.MRREFA = A.MRREFA And B.MRCENT In ('W4', 'W5')) ) As Req Group By MRNDOC, MRCONS, MRDAMV, MRCFOU, MRREFA, mcrefa, MRCOMV, MRTYMV Order By MRDAMV, MRREFA, mcrefa
Adaptée ici avec erreur -2147217900
[IBM][System i Access ODBC Driver][DB2 for i5/OS]SQL0104 - Elément syntaxique MCNOMV n'est pas correct. Eléments possibles : JSON.
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 'Création de la requete SQL SQL = "Select MRNDOC, MRCONS, MRDAMV, MRCFOU, MRREFA, MCREFA, MRCOMV, MRTYMV, Sum(MRQTUC) AS SUMQTT " & _ "From " & _ "( Select MRNDOC, MRCONS, MRDAMV, MRCFOU, MRREFA, MCREFA, MRCOMV, MRTYMV, MRQTUC " & _ "From X_MVREFA " & _ "LEFT JOIN X_MVCOLI on MRNOMV is MCNOMV And MRANMV is MCANMV and MRRAMV is MCRAMV " & _ "Where MRCOMV is 'S' And MRCONS <> ' ' AND MRCENT IN ('W4', 'W5') AND MRDAMV >= " & dateDebutSQL & " AND MRDAMV <= " & dateFinSQL & _ " Union All " & _ "Select MRNDOC, MRCONS, MRDAMV, MRCFOU, MRREFA, MCREFA, MRCOMV, MRTYMV, MRQTUC " & _ "From X_MVREFA A " & _ "LEFT JOIN X_MVCOLI on MRNOMV is MCNOMV And MRANMV is MCANMV and MRRAMV is MCRAMV " & _ "Where MRCOMV = 'S' AND MRCENT IN ('W4', 'W5') AND MRDAMV >= " & dateDebutSQL & " AND MRDAMV <= " & dateFinSQL & " And MRCONS = ' ' And MRNOMV Not In " & _ "( Select B.MRNOMV " & _ "From X_MVREFA B " & _ "Where B.MRCOMV is 'E' " & _ "And B.MRREFA is A.MRREFA " & _ "And B.MRCENT In ('W4', 'W5')) " & _ ") As Req " & _ "Group By MRNDOC, MRCONS, MRDAMV, MRCFOU, MRREFA, MCREFA, MRCOMV, MRTYMV " & _ "Order By MRDAMV, MRREFA, MCREFA "
J'ai fais des recherches sur JSON et n'ai absolument rien compris, est-ce réellement à mettre en place ? J'ai également vu cet article sur les jointures mais ca ne m'aide pas à corriger ma requête..
https://www.developpez.net/forums/d5...-dit-jointure/
Quelqu'un s'aurait-il apporté sa précieuse aide ?
Merci beaucoup beaucoup !
LRN
Partager