与新列匹配的sql

o8x7eapl  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(266)

我正在microsoft access中使用sql。对于一个条形码,该表可能包含多个值。我想创建一个查询,该查询返回一行,其中每个行都有唯一的条形码,前5个值的每个列都有。现在,我有一个查询返回最后一个值或第一个值(最小值或最大值)。如何将第二个、第三个、第四个、第五个值分为不同的列?
表格:

当前查询:

SELECT table.barcode, MIN(table.value)
FROM table
GROUP BY table.barcode

电流输出:

目标输出:

sshcrbum

sshcrbum1#

这相当棘手。我认为在ms-access中,条件聚合和相关子查询一直困扰着您。请注意,以下假设值是唯一的:

select barcode,
       max(iif(seqnum = 1, value, null)),
       max(iif(seqnum = 2, value, null)),
       max(iif(seqnum = 3, value, null)),
       max(iif(seqnum = 4, value, null)),
       max(iif(seqnum = 5, value, null))
from (select t.*,
             (select count(*)
              from t as t2
              where t2.barcode = t.barcode and t2.value <= t.value
             ) as seqnum
      from t
     ) t
group by barcode;

相关问题