繁体   English   中英

计算同一个表中的列

[英]Counting columns in the same table

我一直在努力在Access 2007中开发一个现金流量表。这可以通过使用公式如excel轻松完成

= SUM (B6:M6) / CountIF(B6:M6)>0 

但是当谈到访问时,我似乎无法绕过这个。 我需要为每个输入数据的公司提供此信息。 现金流量表应该是这样的(因为我还不能发布图片):

----------------------------------------------------------------------------------------------------------------
Particulars | Jan | Feb | Mar | Apr | Jun | Jul | Aug | Sep | Oct | Nov | Dec | Average |
Sales---------------------->
Salary------>
Transportation----->

还有大约10个其他项目,所有项目都有1月到12月的条目,但有时我们需要6个月的数据,有时需要12个月。 (想象一下,基本的Excel工作表包含第一列上的项目和下一个12-13列的标题)。

在访问中,我为每个项目创建了表格,其中列为月份,例如。 tblRcpt - > | rcpt_ID | Jan | Feb | ...依此类推至所有项目的dec。 然后,它们将被安排并以条目形式呈现,其形式看起来类似于上表,而稍后我将查询并将它们链接在一起以呈现完整的现金流量表。

现在问题是,我需要对列进行平均处理(正如您在最右边的列中看到的那样),但我只想将那些已填充的月份放在一起(有时在会计人员输入'0'时没有数据),所以我不能将列相加并除以12。 它必须是动态的,所有功能似乎都围绕计数和平均ROW而不是COLUMNs。

感谢您和我一起阅读并阅读本文,我们将非常感谢您的帮助。

尝试这个

(Jan + Feb + ... + Dec) /
  ( case when Jan = 0 then 0 else 1 end
  + case when Feb = 0 then 0 else 1 end

  + case when Dec = 0 then 0 else 1 end )
as Avg

你的表结构应该是:

Particulars | Month | Amount
Sales         1       500
Sales         2       1000
Salary        1       80000

...等等。 如果没有该月的值,则可以输入行,也可以在SQL语句中处理它们(如下所示):

SELECT Particulars, AVG(Amount) AverageAmount
FROM MyTable
WHERE NULLIF(Amount, 0) IS NOT NULL
GROUP BY Particulars;

暂无
暂无

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

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