我有下表 - 项目和大小是字段名称:
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?
此致
迈克尔
答案 0 :(得分:0)
每个尺码都有一个重量或订单价值,因此您可以知道它们的使用顺序 这个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。)