我有以下表格- Item和Size是字段名称:
Item Size1 Size2 Size3 Size4 Size5 Size6 Size7
ABY S
XYZ S M L XL
FGH 8 10 12 14
QWE 4 5 6 7但我需要得到以下结论:
Item SizeRange
ABY S
XYZ S-XL
FGH 8-14
QWE 4-7我可以通过一个SWITCH函数检查<> ''的大小,但是实际上字段的大小是15,有没有更简单,更干净的方法呢?即VBA?
致以敬意,
迈克尔
发布于 2017-03-09 21:10:02
如果您将表格重新设计为此格式:

每种尺寸都有一个权重或顺序值,这样您就可以知道它们的使用顺序。
这个SQL可能不是最好的实现(我有点生疏),它将给出示例中所示的表:
SELECT T1.Item
, MinSize & IIF(Not MaxSize Is Null,' - ' & MaxSize,'') AS SizeRange
, MaxSize
FROM (
SELECT TOP 1 Item
, Size AS MinSize
FROM tbl_ItemSizes
GROUP BY Item
, Size
, Weighting
ORDER BY Weighting
) T1 LEFT JOIN
(
SELECT TOP 1 Item
, Size AS MaxSize
FROM tbl_ItemSizes
GROUP BY Item
, Size
, Weighting
ORDER BY Weighting DESC
) T2 ON T1.Item = T2.Item (有人可以随意重写SQL)。

https://stackoverflow.com/questions/42694412
复制相似问题