-- 作者:fubblyc
-- 发布时间:2016/3/1 15:12:00
-- 操作时间为充值的当天,并且是最大值
遇到一个问题搞半天没弄成。。。求助。。。
如图:
此主题相关图片如下:5.png
这是后台的一个sql视图,想统计各个店员经办的会员充值当天的余额,充值金额-消费金额,有可能当天没有消费,那就是当天的充值金额
我是这样想的:先找出这些行,然后统计:
Dim dt As DataTable cm d.Comman dText = "SELEC T 操作时间,经办店员,余额 * \'" & tcbl & "\' As 储值提成 From {储值卡操作记录} where " & filter & " and 操作时间 = " \'//tcbl 是设定的一个 提成比率 打黄色的是想说 操作时间 的充值时间 的当天,并且是最大值(这样就知道充值当天之后的余额)。。不知道可不可行,也不知道怎么写。。 dt = cmd.ExecuteReader()
Dim b As New GroupTableBuilder("统计表1",dt) b.Groups.AddDef("操作时间",DateGroupEnum.Year,"年") \'添加日期列用于分组,并用"年"代替原名称 b.Groups.AddDef("操作时间","月") \'添加日期列用于分组,并用"月"代替原名称 b.Groups.AddDef("经办人") \'根据产品分组 b.Totals.AddDef("储值提成","","提成收入_值")
|
-- 作者:fubblyc
-- 发布时间:2016/3/1 15:27:00
--
余额已经算出来了,那个表就是计算好了之后的sql视图。现在的具体问题就是想找到这些行。。。
现在是这样:
Dim dt As DataTable cm d.Comman dText = "SELEC T 操作时间,经办店员,余额 From {储值卡操作记录} " 这是找到所有的余额的行。
但想实现的找到表中打黄色的行。
也就是每个充值当天的,而不是所有的。
大红袍老师,上传实例有点麻烦,你看我这样描述可以吗?如果不行,我就上传实例。。。
|
-- 作者:fubblyc
-- 发布时间:2016/3/1 16:36:00
--
哦,我试了:
Dim dt As DataTable cmd.CommandText = "SELEC T 操作时间,经办门店,经办人,余额,余额 * \'" & tcbl & "\' As 储值提成 From {储值卡操作记录} where " & filter & "" dt = cmd.ExecuteReader()
Dim b As New GroupTableBuilder("统计表1",dt) b.Groups.AddDef("操作时间",DateGroupEnum.Year,"年") \'添加日期列用于分组,并用"年"代替原名称 b.Groups.AddDef("操作时间","月") \'添加日期列用于分组,并用"月"代替原名称 b.Groups.AddDef("操作时间",DateGroupEnum.day,"日") \'添加日期列用于分组,并用"月"代替原名称 b.Groups.AddDef("经办店员") \'根据产品分组 b.Totals.AddDef("操作时间",AggregateEnum.Max,"充值当天最后操作时间") ‘这一句报错
报错:
从类型“Date”到类型“Decimal”的转换无效。
要怎么改呢。。。
|