通过组合两条记录通过
问题描述:
我还是新手,在Access vba中学习,并感谢您是否可以帮助我解决当前的情况。通过组合两条记录通过
我已经开发了VBA代码从一个表名为拉数据Tblsrce
sqlStr = "SELECT zYear, zMonth, Product, Sum(Dollar) as totalAmt FROM Tblsrce "& _
"WHERE fruits IN (NOT NULL, '" & Replace(strFruits, ", ", "', '")
"GROUP BY zYear, zMonth, Product;"
该字段fruits
包含芒果,苹果,樱桃,香蕉通常的数据等
strFruits
是来自用户的variable
(如果他们想要拉多个水果,则用逗号分隔)。
但是,当我有两个相关的水果具有不同的名称(例如红苹果和青苹果)时,我遇到了一个问题,我需要合并。有没有什么办法,我可以Group By
这些记录和标记他们当前查询中的苹果我有?
谢谢!
答
是的,你可以使用像switch function
这样的条件来计算一些水果组字段。
Switch(
Product='Red Apple', 'Apple'
Product='Green Apple', 'Apple'
Product='Orange', 'Citrus') As ProductGroup
然后,您可以使用更高级别的查询字段:
Select zYear, zMonth, ProductGroup,
Count(*)
From
(Select f.*,
Switch(....)
From Fruits f)
Group By zYear, zMonth, ProductGroup
当然会更容易些,如果这个数据是不是在这样的查询动态计算的,而是被储存在一个单独的表格中,因此您知道每个产品的产品组。这也更容易维护(只需添加数据而不是修改查询),并可能执行得更好。
答
你可以,但你将不得不有一个额外的表,你列出所有的水果,他们的团体。然后你可以加入,并由小组分组。
结构示例:
Fruit | FruitCategory
+-------------+---------------+
| Red apple | Apple |
+-------------+---------------+
| Green apple | Apple |
+-------------+---------------+
| Banana | Banana |
+-------------+---------------+
您可以预填充表具有快速SELECT DISTINCT Fruits from Tblsrce
并插入两列,然后调整您想要的类别。
谢谢!我会试着研究一下'switch',并且会重点考虑2中最实际和最有效的方法。 – kulapo