以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]数据库统计 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=175040) |
-- 作者:martin723 -- 发布时间:2022/2/17 13:36:00 -- [求助]数据库统计 此主题相关图片如下:snipaste_2022-02-17_13-28-21.png 想将一个数据库的数据查询出来。该表有日期、单位及其他字段。想对数据按月份、单位进行分组合计,数据在很多表中关联,想根据已有查询语句,将查询结果创建新纪录到另外一个数据源中。 需要按日期进行循环,导出记录到另外一张表中,怎么写代码? 原有的查询语句中有 \' 号,在新建sql表中可以直接使用。如果用代码怎么替换? 上面的 2020 01 22044 分别是年、月、单位代码,实际使用中用日期进行代替。
[此贴子已经被作者于2022/2/17 13:37:29编辑过]
|
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间: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编辑过]
|
-- 作者:有点蓝 -- 发布时间:2022/2/18 11:06:00 -- 连接字符使用&,不要使用+ S1 = S1 & " NVL(WTZ
另外别名加上as:"SELECT NVL(W2.SCENE, 0) as SCENE," |