Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

problème de regroupement GROUP BY

1 réponse
Avatar
Jean-Paul
Bonjour,
Sur la petite table ci-dessous, je n'arrive pas à effectuer correctement un
regroupement qui pourtant parrait élémentaire.
Champs de la table (tous numériques LONG):
-IdSS (clé primaire)
-IdItem (un numéro d'Item)
-IdItemCategory (nombre qui représente une catégorie sur laquelle il
faudrait appliquer un regroupement)
-SortItem (nombre destiné à modifier l'ordre de tri des items dans la liste)

IdSS;IdItem;IdItemCategory;SortItem
1;1;2;1
2;2;2;2
3;3;2;3
8;5;1;4
9;6;1;5
10;7;1;6
11;9;1;7
12;10;1;8
13;12;1;9
14;14;5;11
15;15;5;10


Je fais une requête regroupement toute simple là-dessus de la manière
suivante :
-IdItemCategory REGROUPEMENT
-IdItem PREMIER
-SortItem PREMIER + tri CROISSANT

Le résultat :

IdItemCategory;IdItem,SortItem
2;1;1
1;5;4
5;14;11

Comme vous pouvez le voir sur la dernière ligne, dans la catégorie 5, c'est
l'IdItem 14 qui sort
en tant que PREMIER alors que si on tient compte de l'ordre de tri, c'est le
15 qui devrait passer en premier. Ou en tout cas, ce que je voudrais obtenir
: le PREMIER de IdItem par IdItemCategory et en fonction d'un ordre de tri
déterminé par SortItem..

Un grand merci à ceux qui pourraient m'aider pcq je ne vois pas clair.

Jean-Paul

1 réponse

Avatar
Haikel3000
Salut Jean Paul,

au boulot, voila comment faire

tu dois préparer deux requetes, la première basée sur ta table, la seconde
se basant sur la première .......

dans l'exemple, la première requête se nomme QuerydeBase
et la seconde result


1 requête

SELECT Matable.SortItem, Matable.IdItemCategory, First(Matable.IdItem) AS
FirstOfIdItem, First(Matable.ID) AS FirstOfID
FROM Matable
GROUP BY Matable.SortItem, Matable.IdItemCategory
ORDER BY Matable.SortItem;



et la deuxième query
********************

SELECT Querydebase.IdItemCategory, First(Querydebase.FirstOfIdItem) AS
FirstOfFirstOfIdItem, First(Querydebase.FirstOfID) AS FirstOfFirstOfID
FROM Querydebase
GROUP BY Querydebase.IdItemCategory;



Normalement ça fonctionne comme ça....

A plus,

Haikel3000









"Jean-Paul" wrote:

Bonjour,
Sur la petite table ci-dessous, je n'arrive pas à effectuer correctement un
regroupement qui pourtant parrait élémentaire.
Champs de la table (tous numériques LONG):
-IdSS (clé primaire)
-IdItem (un numéro d'Item)
-IdItemCategory (nombre qui représente une catégorie sur laquelle il
faudrait appliquer un regroupement)
-SortItem (nombre destiné à modifier l'ordre de tri des items dans la liste)

IdSS;IdItem;IdItemCategory;SortItem
1;1;2;1
2;2;2;2
3;3;2;3
8;5;1;4
9;6;1;5
10;7;1;6
11;9;1;7
12;10;1;8
13;12;1;9
14;14;5;11
15;15;5;10


Je fais une requête regroupement toute simple là-dessus de la manière
suivante :
-IdItemCategory REGROUPEMENT
-IdItem PREMIER
-SortItem PREMIER + tri CROISSANT

Le résultat :

IdItemCategory;IdItem,SortItem
2;1;1
1;5;4
5;14;11

Comme vous pouvez le voir sur la dernière ligne, dans la catégorie 5, c'est
l'IdItem 14 qui sort
en tant que PREMIER alors que si on tient compte de l'ordre de tri, c'est le
15 qui devrait passer en premier. Ou en tout cas, ce que je voudrais obtenir
: le PREMIER de IdItem par IdItemCategory et en fonction d'un ordre de tri
déterminé par SortItem..

Un grand merci à ceux qui pourraient m'aider pcq je ne vois pas clair.

Jean-Paul