【发布时间】:2009-08-18 09:08:15
【问题描述】:
我有一个连接 2 个表的 SQL SELECT 语句。
主表包含产品的其他信息,并与第二个尺寸表相连。
第二个表包含存储为字符串的非数字大小列表,其结构简单如下...
SizeID = 主键
SizeName = 大小的字符串值(即小、中、大)
SizeOrder = 用于对尺寸顺序进行排序的整数值(即 SizeOrder 为 5 表示 Size 大于 SizeOrder 为 2)
我需要 SELECT 语句从尺寸表中返回 MIN() 和 MAX() 尺寸。
但是,由于实际大小存储为字符串,我需要针对 SizeOrder 列运行 MIN() 和 MAX() 函数,但返回 SizeName 列的值。
我目前的尝试如下:
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;
这将返回错误“不支持引用'MinSizeID'(对组函数的引用)”
【问题讨论】: