Bonjour
Mon problème est assez simple j'ai deux table.
La première ci-dessous imbrique une deuxième table calculant le CA TTC à partir des champs date dbo_DOCPROMO_DP_VENTES.V_DOCDATE et dbo_DOCPROMO_F_DOCENTETE.DO_DateLivr de ma requête principale.
La sous requête contient une variable fixe (un code article) que j'aimerais remplacer par la liste des articles contenus dans chaque document identifié listé dans la requête principale.
Donc j'aimerais avoir la liste des code articles du premier document à la place de '00499'
puis passer au deuxième document de ma requête principale et avoir la liste des articles contenues dans le deuxième document à la place de '00499'
et ainsi de suite.
je suppose qu'il doit y avoir moyen de faire autrement ou plus performant mais j'aimerais bien comprendre où ça coince avec cette méthode.
j'ai essayé de remplacer la variable fixe '00499' par ce code:
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 SELECT dbo_DOCPROMO_DP_VENTES.V_DOCNUM, dbo_DOCPROMO_DP_VENTES.V_DOCDATE, dbo_DOCPROMO_F_DOCENTETE.DO_DateLivr, dbo_DOCPROMO_DP_VENTES.V_DOREF, (SELECT sum(dbo.DP_VENTES_LIGNES.CATTCNet) FROM dbo.DP_VENTES, dbo.DP_VENTES_LIGNES, dbo.DP_ARTICLES WHERE ( dbo.DP_VENTES.V_DOCTYPE=dbo.DP_VENTES_LIGNES.VL_DOCTYPE ) AND ( dbo.DP_VENTES_LIGNES.VL_ART_UK=dbo.DP_ARTICLES.ART_UK ) AND ( dbo.DP_VENTES.V_DOCNUMBIN=dbo.DP_VENTES_LIGNES.VL_DOCNUMBIN ) AND ( dbo.DP_VENTES.V_DOCDATE BETWEEN dbo_DOCPROMO_DP_VENTES.V_DOCDATE AND dbo_DOCPROMO_F_DOCENTETE.DO_DateLivr AND dbo.DP_ARTICLES.ART_NUM IN ('00499') ) ) as CATTC FROM dbo.DP_VENTES AS dbo_DOCPROMO_DP_VENTES, dbo.F_DOCENTETE AS dbo_DOCPROMO_F_DOCENTETE, dbo.DP_CLIENTS AS dbo_DOCPROMO_DP_CLIENTS WHERE ( dbo_DOCPROMO_DP_CLIENTS.CLI_UK=dbo_DOCPROMO_DP_VENTES.V_CLI_UK ) AND ( dbo_DOCPROMO_DP_VENTES.V_PK=dbo_DOCPROMO_F_DOCENTETE.CBMARQ ) AND ( dbo_DOCPROMO_DP_CLIENTS.CLI_NUM = 'NOM_DOC' AND dbo_DOCPROMO_DP_VENTES.V_CODEAF = 'SOLDES' )
Sans succès malgré le fait que mes trois requêtes soit correctement écrites séparément car j’obtiens le message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 SELECT dbo_ARTPROMO_DP_VENTES.V_DOCNUM, dbo_ARTPROMO_DP_VENTES_LIGNES.VL_ART_NUM FROM dbo.DP_VENTES AS dbo_ARTPROMO_DP_VENTES, dbo.DP_VENTES_LIGNES AS dbo_ARTPROMO_DP_VENTES_LIGNES WHERE ( dbo_ARTPROMO_DP_VENTES.V_DOCTYPE=dbo_ARTPROMO_DP_VENTES_LIGNES.VL_DOCTYPE ) AND ( dbo_ARTPROMO_DP_VENTES.V_DOCNUMBIN=dbo_ARTPROMO_DP_VENTES_LIGNES.VL_DOCNUMBIN ) AND ( dbo_ARTPROMO_DP_VENTES.V_DOCNUM = 'FAI60412' )
"Une seule expression peut être spécifiée dans la liste de sélection quand la sous-requête n'est pas introduite par EXISTS."
Si quelqu'un pouvait éclairer ma lanterne ...
Merci bien
Partager