在MS Access中对列标题进行分组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在MS Access中对列标题进行分组相关的知识,希望对你有一定的参考价值。
好的,我知道在Ms Access Reports或Crosstab Queries中对行进行分组,但是您可以对列标题进行分组吗?
我有以下字段的查询
DaysWork___Source___Opening___CashIN___CashOUT
18年1月10日____ Cashier1___1500______800______200
18年1月10日____ Cashier2___130_______100______900
18年2月10日_____ Cashier1__1500______500______250
18年2月10日_____ Cashier2__1300______150_______25
我可以在报告或其他查询中将查询显示为这样
DaysWork___________Cashier1_______________________Cashier2 ___________Opening___CashIN___CashOUT___Opening___CashIN___CashOUT 1/10/18 ______ 1500____800______200____1300_____100______900 2/10/18 ______ 1500_______ 500______250____1300_____150_______ 25
不幸的是,SQL没有必需的功能。如果收银员名称是固定的并且已知数量的收银员,您可以使用如下查询:
SELECT DaysWork
,Max(IIf(Source <> 'Cashier1', NULL, Opening)) AS Opening_1
,Max(IIf(Source <> 'Cashier1', NULL, CashIN)) AS CashIN_1
,Max(IIf(Source <> 'Cashier1', NULL, CashOUT)) AS CashOUT_1
,Max(IIf(Source <> 'Cashier2', NULL, Opening)) AS Opening_2
,Max(IIf(Source <> 'Cashier2', NULL, CashIN)) AS CashIN_2
,Max(IIf(Source <> 'Cashier2', NULL, CashOUT)) AS CashOUT_2
FROM MyTable
GROUP BY DaysWork
您也可以创建一个查询并使用它而不是MyTable
,其中每个出纳员都有一个相应的数字,并在报告查询中使用那些Source
列的数字。在这种情况下,您不需要知道收银员名称,但应限制不同收银员的数量
SELECT DaysWork
,Max(IIf(CashierNo <> 1, NULL, Opening)) AS Opening_1
,Max(IIf(CashierNo <> 1, NULL, CashIN)) AS CashIN_1
,Max(IIf(CashierNo <> 1, NULL, CashOUT)) AS CashOUT_1
,Max(IIf(CashierNo <> 2, NULL, Opening)) AS Opening_2
,Max(IIf(CashierNo <> 2, NULL, CashIN)) AS CashIN_2
,Max(IIf(CashierNo <> 2, NULL, CashOUT)) AS CashOUT_2
FROM qry_OnMyTable
GROUP BY DaysWork
以上是关于在MS Access中对列标题进行分组的主要内容,如果未能解决你的问题,请参考以下文章