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 :
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
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
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.
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 ...
J'ai essayé ceci :
Les résultats mettent 4 min a s'afficher (contre 2 sec pour la requête précédente).
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]
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 ?
Partager