如何在Access中创建报价单交叉表查询 实现供应商价格数据行列转置
Access 报价单交叉表查询实现方案
1 前置准备:构建拼接字段的基础查询
首先需要将单条记录的价格、备注字段拼接为要求的展示格式,创建一个普通选择查询,SQL代码如下,注意替换你自己的原始表名:
SELECT item, vendor, NZ(price & " (" & special & ")", "-(-)") AS display_content FROM 你的原始数据表名;
如果存在备注字段为空的场景,可以优化拼接逻辑避免出现空括号:
SELECT item, vendor, NZ(price & IIf(special IS NULL, "", " (" & special & ")"), "-(-)") AS display_content FROM 你的原始数据表名;
2 构建交叉表查询
直接使用Access交叉表专用的TRANSFORM语法编写即可,将上一步的基础查询作为数据源:
TRANSFORM Nz(First(display_content), "-(-)") SELECT item FROM 上一步创建的基础查询名 GROUP BY item PIVOT vendor;
如果需要固定显示示例中的wpb列(哪怕无对应供应商数据也展示),可以指定PIVOT的固定列列表:
TRANSFORM Nz(First(display_content), "-(-)") SELECT item FROM 上一步创建的基础查询名 GROUP BY item PIVOT vendor In ("stc","msb","wpb");
运行上述查询即可得到你要求的交叉表格式输出。
内容的提问来源于stack exchange,提问作者saki Gurusinghe
相关产品推荐
相关产品推荐

