Bonjour,

J'ai besoin du résultat suivant :

N° Commande|N° Article|Nb. 1/2|Nb. 1/4|Nb. 1/8|Nb. VRAC

Avec la requête suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
SELECT sl.[Document No_] as Commande, 
sl.No_ as [No Article],
spd.[Logistic Type] as [Cond.],
spd.[packaging quantity] as [Nb]
FROM  [Sales Line] sl WITH (ROWLOCK)
JOIN [Sales Packaging Detail] spd ON spd.[Document No_] = sl.[Document No_] AND  spd.[Item No_] = sl.No_
WHERE sl.[Consumption date]= @dateConso
AND sl.No_ = @article
AND sl.[Responsibility Center] = @paramcuisine
ORDER BY Commande
J'obtiens le résultat suivant, dans des délais satisfaisants :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
...
CV795245	PF016557	1/8	2
CV795977	PF016557	1/8	4
CV795977	PF016557	VRAC	15
...
Dans ce jeu de résultat, les conditionnements (1/2,1/4...) sont sur des lignes différentes. J'ai besoin de les avoir sur la même ligne.


J'ai essayé ceci :
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 sl.[Document No_] as [No Commande], 
sl.No_ as [No Article],
 
(SELECT quantity FROM [Restoria$Sales Packaging Detail] spd1
WHERE spd1.[Document No_] = sl.[Document No_] 
AND  spd1.[Line No_] = sl.[Line No_]
AND [Logistic Type] = '1/2') AS [Nb 1/2],
 
(SELECT quantity FROM [Restoria$Sales Packaging Detail] spd2
WHERE spd2.[Document No_] = sl.[Document No_] 
AND  spd2.[Line No_] = sl.[Line No_]
AND spd2.[Logistic Type] = '1/4') AS [Nb 1/4],
 
(SELECT quantity FROM [Restoria$Sales Packaging Detail] spd3
WHERE spd3.[Document No_] = sl.[Document No_] 
AND  spd3.[Line No_] = sl.[Line No_]
AND  spd3.[Logistic Type] = '1/8') AS [Nb 1/8],
 
(SELECT quantity FROM [Restoria$Sales Packaging Detail] spd4
WHERE spd4.[Document No_] = sl.[Document No_] 
AND  spd4.[Line No_] = sl.[Line No_]
AND spd4.[Logistic Type] = 'VRAC') AS [Nb VRAC]
 
FROM  [Sales Line] sl WITH (ROWLOCK)
[Document No_] AND  spd.[Item No_] = sl.No_
WHERE sl.[Consumption date]= @dateConso
AND sl.No_ = @article
AND sl.[Responsibility Center] = @paramcuisine
ORDER BY [No Commande]
Les résultats mettent 4 min a s'afficher (contre 2 sec pour la requête précédente).
J'ai également essayé de mettre mes [Sales packaging detail] dans une table temporaire (WITH tableTemp as...) sans succès.

Auriez-vous des pistes ? pour regrouper des lignes selon la valeur d'une colonne ?