Bonjour à tous,
J'ai une requête SQl ou j'ai inséré la fonction grouping que je ne maitrise pas très bien je l'avoue.
Le résultat est presque celui que je recherche mais il me manque un sous total que je n'arrive pas à afficher . Dans la colonne TYPE_TRI, je souhaiterais pourvoir afficher le titre "Total rejet" et dans la colonne "Nbcolis", le nombre total de colis en rejets soit :4974. Et pour compliquer le tout, je souhaite que le détail des rejets soit toujours affiché
.
C'est pourquoi, je viens vers vous pour une aide
Et merci d'avance pour votre aide
Voici une photo du résultat de la requête:
et ci dessous, la requete SQL
Ci dessous
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 SELECT coalesce([System].[Name],'Trieur') AS TRIEUR, coalesce(CASE [ParcelEvent].[EventTypeNum] WHEN @EVENT_TYPE_REJECT THEN 'Rejet' ELSE 'Tri et contrôle' END,'TOTAL (Tri et controle + Rejet)') AS TYPE_TRI, coalesce([RejectType].[Name],'') AS TYPE_DESTINATION, coalesce([RejectReason].[Name],'') AS Détail, COUNT(DISTINCT ParcelEvent.ParcelId) AS Nb_colis FROM [ParcelEvent] (NOLOCK) INNER JOIN [System] (NOLOCK) ON [ParcelEvent].[SystemNum]=[System].[Num] AND [ParcelEvent].[EventTypeNum] IN (@EVENT_TYPE_SORTING,@EVENT_TYPE_REJECT) LEFT OUTER JOIN [RejectReason] ON [ParcelEvent].[AssociatedData]=[RejectReason].[RejectReason] LEFT OUTER JOIN [RejectType] ON [RejectReason].[RejectType]=[RejectType].[Type] WHERE ([ParcelEvent].[DateTime] BETWEEN @StartDateTime AND @EndDateTime) GROUP BY [System].[Name], (CASE [ParcelEvent].[EventTypeNum] WHEN @EVENT_TYPE_REJECT THEN 'Rejet' ELSE 'Tri et contrôle' END), [RejectType].[Name] , [RejectReason].[Name] with ROLLUP HAVING (grouping([System].[Name]) = 0 and grouping(CASE [ParcelEvent].[EventTypeNum] WHEN @EVENT_TYPE_REJECT THEN 'Rejet' ELSE 'Tri et contrôle' END) = 0 and grouping([RejectType].[Name]) = 0 and grouping([RejectReason].[Name]) = 0) or (grouping([System].[Name]) = 1 and grouping(CASE [ParcelEvent].[EventTypeNum] WHEN @EVENT_TYPE_REJECT THEN 'Rejet' ELSE 'Tri et contrôle' END) = 1 and grouping([RejectType].[Name]) = 1 and grouping([RejectReason].[Name]) = 1) ORDER BY TYPE_DESTINATION, Nb_colis DESC
Partager