J'ai une instruction SQL SELECT joignant 2 tables.
La table principale contient des informations diverses sur un produit et est jointe à une deuxième table de tailles.
La deuxième table contient une liste des formats non numériques stockés comme une chaîne et est tout simplement structuré comme suit ...MySQL: MIN() et MAX() contre une valeur de chaîne
SizeID = clé primaire
SizeName = Valeur de chaîne de taille (c.-à-Small, Medium, Large)
SizeOrder = valeur entière pour trier l'ordre de tailles (ie a SizeOrder 5 signifierait la taille était plus grand qu'un SizeOrder de 2)
J'ai besoin l'instruction SELECT pour retourner le MIN() et MAX() tailles de la table des tailles.
Cependant, comme la taille réelle est stockée sous forme de chaîne, j'ai besoin d'exécuter les fonctions MIN() et MAX() par rapport à la colonne SizeOrder, mais retourner la valeur de la colonne SizeName.
Ma tentative actuelle est la suivante:
SELECT ProductReference, MIN(SizeOrder) AS MinSizeID, MAX(SizeOrder) AS MaxSizeID,
(SELECT SizeName FROM Size WHERE SizeOrder = MinSizeID) AS MinSizeText,
(SELECT SizeName FROM Size WHERE SizeOrder = MaxSizeID) AS MaxSizeText
FROM (Product INNER JOIN Size ON Products.SizeFK = StoneSize.SizeID)
WHERE ID = 132
GROUP BY ProductReference;
Cela renvoie l'erreur « Référence « MinSizeID » non pris en charge (référence à la fonction de groupe) »
Je pense que comme vous l'attendiez peut-être, votre suggestion renvoie une erreur indiquant "Utilisation invalide de la fonction de groupe" – ticallian
Ce n'est pas exactement ce à quoi je m'attendais. C'est peut-être parce que le MIN (SizeOrder) qui nous intéresse n'est pas le SizeOrder, j'essayerais de qualifier le SizeOrder dans les sous-sélections, comme ceci: WHERE SizeOrder = MIN (Products.SizeOrder) et la même chose pour MAX(). –
Qui malheureusement génère la même erreur "Utilisation invalide de la fonction de groupe" – ticallian