Foxtable(狐表)用户栏目专家坐堂 → 关于Excel数据源数据获取的问题


  共有3101人关注过本帖树形打印复制链接

主题:关于Excel数据源数据获取的问题

帅哥哟,离线,有人找我吗?
scofields
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:561 积分:4516 威望:0 精华:0 注册:2016/4/17 20:05:00
关于Excel数据源数据获取的问题  发帖心情 Post By:2021/7/28 19:06:00 [显示全部帖子]

今天用Excel数据源做了一次数据整理,我的数据发货数量,发货金额都是文本列数据,但这样一写,数据导不出来了,也不知道问题出在哪里,可有良方?
Tables("窗口1_Table1").Fill( "S elect 区域,品种,包装方式,运输方式,发货单状态,销售方式,发运工厂,sum(CDbl(发货数量)) as 销量,sum(CDbl(发货金额)) as 发货金额 From {发货单$}","清新发货单",True)
[此贴子已经被作者于2021/7/28 21:18:46编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
scofields
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:561 积分:4516 威望:0 精华:0 注册:2016/4/17 20:05:00
  发帖心情 Post By:2021/7/28 21:19:00 [显示全部帖子]

不用了,我知道了,原来S QL语句写的不对,聚合子句没写

 回到顶部
帅哥哟,离线,有人找我吗?
scofields
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:561 积分:4516 威望:0 精华:0 注册:2016/4/17 20:05:00
  发帖心情 Post By:2021/7/29 9:25:00 [显示全部帖子]

这句S QL语句老显示“S elect语句执行错误,请检查语法及数据源设置”,因为我们的出门时间是文本型数据列,所以我用Convert进行转换,转换后居然失败了,数据源是Excel数据源。
DataTables("表A").Fill( "S elect 区域,品种,包装方式,Round(sum(发货数量),2) as 发货 From {出货单$} where 销售方式 not like '%销售%' and Convert([出门时间], 'System.datetime') = #" & Date.Today & "# group by 区域,品种,包装方式","出货单",True)

 回到顶部
帅哥哟,离线,有人找我吗?
scofields
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:561 积分:4516 威望:0 精华:0 注册:2016/4/17 20:05:00
  发帖心情 Post By:2021/7/29 9:34:00 [显示全部帖子]

2021-07-28 23:48:29,是这样的格式,没有空值,就显示哪3楼的问题。

 回到顶部
帅哥哟,离线,有人找我吗?
scofields
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:561 积分:4516 威望:0 精华:0 注册:2016/4/17 20:05:00
  发帖心情 Post By:2021/7/29 9:43:00 [显示全部帖子]

如图的日
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20210729094157.jpg
图片点击可在新窗口打开查看
期,好像没有无法转换的数据吧

 回到顶部
帅哥哟,离线,有人找我吗?
scofields
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:561 积分:4516 威望:0 精华:0 注册:2016/4/17 20:05:00
  发帖心情 Post By:2021/7/29 11:33:00 [显示全部帖子]

这个问题已经解决了,没问题了。我把 Convert([出门时间], 'System.datetime') = #" & Date.Today & "# 改成 day(出门时间) = #" & Date.Today & "# 就行了。现在我要对查询出来的数据进行统计,窗口有个Textbox1控件,通过输入关键字,统计出包含这个关键字的所有出库数据,怎么写表达式啊?
Sum = Tables("表A").Compute("Sum(发货)", "区域 like ' % & e.Form.Controls("Textbox1").value & %'" ),这样写好像不对,有问题。

 回到顶部
帅哥哟,离线,有人找我吗?
scofields
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:561 积分:4516 威望:0 精华:0 注册:2016/4/17 20:05:00
  发帖心情 Post By:2021/7/29 14:39:00 [显示全部帖子]

这里就是单个条件求和,如求肇庆区域的出库量,就可以在Textbox1输入“肇庆”,但如果是”肇庆“,”中山“怎么写?因为我的区域名称是动态变化的,我在Excel里用sumifs函数就很快处理,=SUM(SUMIFS($G$33:$G$181,$A$33:$A$181,{"*中山*","*南沙*"},$C$33:$C$181,"散装"))。

 回到顶部
帅哥哟,离线,有人找我吗?
scofields
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:561 积分:4516 威望:0 精华:0 注册:2016/4/17 20:05:00
  发帖心情 Post By:2021/7/30 20:19:00 [显示全部帖子]

转换成内部函数,没有,不知道怎么改?请老师指正,我后期还是要固定几个区域的量。
Dim STR As String = Args(0)
Dim sum As Double
Dim f As String = "1=2"
For Each s As String In STR.split(",")
f = f  & " or 区域 like '%" & s & "%'"
Next
Sum = Tables("QXGY2020").Compute("Sum(销量)",f)

 回到顶部
帅哥哟,离线,有人找我吗?
scofields
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:561 积分:4516 威望:0 精华:0 注册:2016/4/17 20:05:00
  发帖心情 Post By:2021/7/30 20:37:00 [显示全部帖子]

不用了,少加了返回值
Return sum

 回到顶部
帅哥哟,离线,有人找我吗?
scofields
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:561 积分:4516 威望:0 精华:0 注册:2016/4/17 20:05:00
  发帖心情 Post By:2021/7/31 17:27:00 [显示全部帖子]

昨天创建了一个自定义函数,DX:
Dim STR As String = Args(0)
Dim dr As  DataRow
dr = DataTables("temp").SQLFind("粤北=''韶关")
STR = dr("区域名称")
Dim sum As Double
Dim f As String = "1=2"
For Each s As String In STR.split(",")
f = f  & " or 区域 like '%" & s & "%'and 产品名 like '%P%'and 供应工厂 like '%曲江%' "
Next
sum = DataTables("QXGY2020").sqlCompute("Sum(销量)",f)
Return sum
我的数据源总共有13万行数据,在调用这个函数统计时,整整花了165秒的时间,有没办法优化?
[此贴子已经被作者于2021/7/31 17:29:28编辑过]

 回到顶部
总数 11 1 2 下一页