[英]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.