Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

重新提问 明细统计重点 是 合并记录的问题

阿克赛思  发表于:2015-11-25 15:41:07  
复制

感觉似乎是我自己没有把问题说清楚 ,上个问题 http://www.accessoft.com/bbs/showtopic.asp?ID=25356&BoardID=4

我自己思索了一下 ,发现其实就是 合并记录的问题 

不知道是不是要涉及到 联合查询 


并没有 得到解决,还是这两张 图:


合并记录为:


各位高手请不吝赐教 ,感谢在上个帖子里回答的我的朋友 

=======如果 版主觉得上的帖子有点多余请删除 

 

Top
煮江品茶 发表于:2015-11-26 11:05:49

啰嗦

如果不想按年度月度分组,就取咨询日期的最小值嘛。

select 编号,姓名,咨询类型,min(咨询日期) as 起始日期,sum(单次价格) as 消费金额,count(*) as 咨询次数,sum(持续时间) as 累计时间

from 阁下的表或查询名称

group by 编号,姓名,咨询类型



阿克赛思 发表于:2015-11-28 13:36:35

说一下我自己最终的解决方案(vb6+access 完成),


1)建立了两个查询,一个查询负责获得范围内的用户编号,一个查询负责获得明细

×以下是

2)根据用户编号列表对每个用户进行统计

贴出部分代码(对符合条件的用户编号遍历):


 If ExcuteSql(rctQueryAdvNo, "select * from QueryAdvNo") = True Then '////继承过滤器
                    'rctQueryAdvNo.Filter = rctAdv.Filter 'Set lvTotal.DataSource = rctQueryAdvNo
                End If
                
                Do While Not (rctQueryAdvNo.EOF Or rctQueryAdvNo.BOF)
                    curCno = rctQueryAdvNo.Fields("编号")
                    If fCno <> curCno Then
                        GetCountAndMoney curCno
                        Debug.Print fCno, curCno, "Change", totalHour, totalMoney
                        fCno = curCno
                        lvTotal.ListItems.Add , , curCno
                        lvTotal.ListItems(lvTotal.ListItems.Count).SubItems(1) = rctQueryAdvNo.Fields("姓名")
                        lvTotal.ListItems(lvTotal.ListItems.Count).SubItems(2) = totalHour
                        lvTotal.ListItems(lvTotal.ListItems.Count).SubItems(3) = totalMoney
                        lvTotal.ListItems(lvTotal.ListItems.Count).SubItems(4) = rctQueryAdvNo.Fields("余额")
                        allMoney = allMoney + totalMoney
                        allSave = allSave + rctQueryAdvNo.Fields("余额")
                    End If
                    

                    rctQueryAdvNo.MoveNext
                Loop
其二(对每个用户进行单独合计,写入变量 total xxx 中):



Do While Not (rctQueryAdvice.EOF Or rctQueryAdvice.BOF) i = i + 1 If i <= rctQueryAdvice.RecordCount Then '////////do the counts
            countHour = Val(rctQueryAdvice("A_Hour")) + countHour
            countMoney = Val(rctQueryAdvice("A_Hour")) * Val(rctQueryAdvice("A_Price")) + countMoney
            
            End If
            '/////////// rctQueryAdvice.MoveNext Loop If Not rctQueryAdvice.BOF Then rctQueryAdvice.MoveFirst End If totalHour = countHour
totalMoney = countMoney
3)获得结果


似乎 VBA 的写法也差不了太多吧,在论坛上查了一下,单纯用查询似乎办不到



兔斯基 发表于:2015-11-28 20:46:50
我有解决了,祝你好运!

总记录:3篇  页次:1/1 9 1 :