繁体   English   中英

在MS Access中对列标题进行分组

[英]Grouping Column Headers in MS Access

好的,所以我知道可以对Ms Access报告或Crosstab查询中的行进行分组,但是可以对列标题进行分组吗?

我有以下字段的查询

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

我可以让查询在报告或其他查询中以这种方式显示吗

天数工作

不幸的是,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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM