You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MS Access中用单条SQL按顺序行转列(适配VB.Net)

MS Access 行转置列并按指定顺序排列(含Total列调整)

修正后的SQL语句

TRANSFORM Sum(Tableproduct.[Qty]) AS SumOfQty
SELECT Tableproduct.Codeproduct AS CodeProduct, Tableproduct.Colour AS Colour,
       Sum(Tableproduct.Qty) AS Total
FROM Tableproduct INNER JOIN SizeProduct ON Tableproduct.Size = SizeProduct.Size
WHERE Tableproduct.Codeproduct = 'A'
GROUP BY Tableproduct.Codeproduct, Tableproduct.Colour
PIVOT SizeProduct.Size IN ('S', 'M', 'L', 'XL');

关键调整说明

  1. 强制列顺序:Access的PIVOT子句默认会按Size值的字母或存储顺序生成列,无法直接关联SizeProduct.Sequence排序。通过IN ('S', 'M', 'L', 'XL')显式指定列的顺序,完美匹配SizeProduct表中Sequence 1-4的大小顺序。
  2. 调整Total列位置:将Sum(Tableproduct.Qty) AS Total移至SELECT子句末尾,确保结果集中Total列位于所有Size列之后。
  3. 兼容VB.NET调用:全程使用标准SQL语法,未依赖Access专属内置函数,可直接通过VB.NET的OleDb等数据访问组件执行。

执行结果

该语句将生成符合预期的输出:

CodeProductColourSMLXLTOTAL
ABlack201030
AWhite151025

内容的提问来源于stack exchange,提问作者user22579796

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 18:42:40