Foxtable(狐表)用户栏目专家坐堂 → [求助]数据库统计


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

主题:[求助]数据库统计

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


加好友 发短信
等级:童狐 帖子:245 积分:2036 威望:0 精华:0 注册:2019/3/20 10:45:00
[求助]数据库统计  发帖心情 Post By:2022/2/17 13:36:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:snipaste_2022-02-17_13-28-21.png
图片点击可在新窗口打开查看

想将一个数据库的数据查询出来。该表有日期、单位及其他字段。想对数据按月份、单位进行分组合计,数据在很多表中关联,想根据已有查询语句,将查询结果创建新纪录到另外一个数据源中。


需要按日期进行循环,导出记录到另外一张表中,怎么写代码?

原有的查询语句中有 '  号,在新建sql表中可以直接使用。如果用代码怎么替换?

上面的 2020  01  22044  分别是年、月、单位代码,实际使用中用日期进行代替。
[此贴子已经被作者于2022/2/17 13:37:29编辑过]

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


加好友 发短信
等级:超级版主 帖子:109728 积分:558356 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/17 13:48:00 [只看该作者]

填充数据参考:http://www.foxtable.com/webhelp/topics/2137.htm

拼接sql,比如:
dim d as date = #5/20/1995#
cmd.CommandText = "SELECT * From {员工} where 出生日期='" & d & "'"

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


加好友 发短信
等级:童狐 帖子:245 积分:2036 威望:0 精华:0 注册:2019/3/20 10:45:00
  发帖心情 Post By:2022/2/18 10:56:00 [只看该作者]

数据库查询出错  ,错误信息如下:
从字符串“SELECT NVL(W2.SCENE, 0) SCENE,  ”到类型“Double”的转换无效。

请问是什么原因(原来的代码在数据库中能正常查询到结果,现在改为3个变量,从另外3张表中取3个数值,正常应该也没有什么问题吧)

Dim dt As DataTable
cmd.C
Dim sCols() As String = {"SCENE", "PROBLEM", "YZG","ZGL", "YBYH", "JDYH","ZDYH"}
Dim dCols() As String = {"SCENE", "PROBLEM", "YZG","ZGL", "YBYH", "JDYH","ZDYH"}

For Each r1 As Row In Tables("年份")
    For Each r2 As Row In Tables("月份")
        For Each r3 As Row In Tables("单位")
            Dim S1 As String
            S1 = "SELECT NVL(W2.SCENE, 0) SCENE,"
            S1 = S1 + "       NVL(WTZS, 0) PROBLEM,"
。。。。。。中间省去若干行
            S1 = S1 + "    ON 1 = 1"
            cmd.CommandText = s1
            dt = cmd.ExecuteReader()
            For Each dr As DataRow In dt.DataRows
                Dim nr As DataRow = DataTables("HSE_Problem_count").AddNew()
                nr("年") =  r1("YEARS")
                nr("月") = r2("MONTHS")
                nr("orgid") =  r3("L2_ORG_ID")
                nr("单位") = r3("L2_ORG_NAME")
                For i As Integer =0 To sCols.Length -1
                    nr(dCols(i)) = dr(sCols(i))
                Next
            Next
        Next
    Next
Next

[此贴子已经被作者于2022/2/18 10:57:26编辑过]

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


加好友 发短信
等级:超级版主 帖子:109728 积分:558356 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/18 11:06:00 [只看该作者]

连接字符使用&,不要使用+
S1 = S1 & "       NVL(WTZ

另外别名加上as:"SELECT NVL(W2.SCENE, 0) as SCENE,"

 回到顶部