Foxtable(狐表)用户栏目专家坐堂 → MYSQL用帮助SQL出错


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

主题:MYSQL用帮助SQL出错

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
MYSQL用帮助SQL出错  发帖心情 Post By:2023/11/6 10:53:00 [只看该作者]

帮助:

'Dim cmd As New SQ-LCommand
'cmd.C
'Dim dt As DataTable
'Dim Cols1() As String = {"来源列一", "来源列二", "来源列三"}
'Dim Cols2() As String = {"接收列一", "接收列二", "接收列三"}
'cmd.CommandText = "SELEC-T * From {表A} Where 条件语句"
'dt = cmd.ExecuteReader()
'For Each dr1 As DataRow In dt.DataRows
'    Dim dr2 As DataRow = DataTables("表B").AddNew()
'    For i As Integer = 0 To Cols1.Length - 1
'        dr2(Cols2(i)) = dr1(Cols1(i))
'    Next
'Next


MYSQ-L

'Dim db = HySq-l.DataBaseFactory.CreateDatabase("my") 
'Dim Sql = "Selec-t 产品编号, max(日期) as  日期  From {kcxb_tb} group by 产品编号" 
'Dim Cols1() As String = {"来源列一", "来源列二", "来源列三"}
'Dim Cols2() As String = {"来源列一", "来源列二", "来源列三"}

'Dim dt As system.data.DataTable = db.ExecuteDataSet(Sq-l).Tables(0)
'dt.TableName = "kcb_tb"

'For Each dr1 As DataRow In dt.Rows
'    Dim dr2 As DataRow = DataTables("登记窗口_Table1").AddNew()
'    For i As Integer = 0 To Cols1.Length - 1
'        dr2(Cols2(i)) = dr1(Cols1(i))
'    Next
'Next

报错提:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '} group by 产品编号' at line 1


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


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/11/6 10:54:00 [只看该作者]

使用外部数据源最好都去掉表名的大括号

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/11/6 12:34:00 [只看该作者]

'Dim db = HySq-l.DataBaseFactory.CreateDatabase("my") 
'Dim Sql = "Selec-t 产品编号, max(日期) as  日期  From kcxb_tb   group by 产品编号" 
'Dim Cols1() As String = {"来源列一", "来源列二", "来源列三"}
'Dim Cols2() As String = {"来源列一", "来源列二", "来源列三"}

'Dim dt As system.data.DataTable = db.ExecuteDataSet(Sq-l).Tables(0)
'dt.TableName = "kcb_tb"

'For Each dr1 As DataRow In dt.Rows
'    Dim dr2 As DataRow = DataTables("登记窗口_Table1").AddNew()
'    For i As Integer = 0 To Cols1.Length - 1
'        dr2(Cols2(i)) = dr1(Cols1(i))
'    Next
'Next


报错:
无法将类型为“System.Data.DataRow”的对象强制转换为类型“Foxtable.DataRow”。


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


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/11/6 13:39:00 [只看该作者]

For Each dr1 As System.Data.DataRow In dt.Rows

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/11/6 16:12:00 [只看该作者]

'Dim f As New Filler
'f.SourceTable = DataTables("登记窗口_Table2") '
'f.SourceCols = "产品编号" ,"存量"'
'f.DataTable = DataTables("登记窗口_Table1") '
'f.DataCols = "产品编号","数量" '
'f.Fill() '

'Dim Sql = "Selec-t 产品编号, max(日期) as  日期  From kcxb_tb   group by 产品编号" 

上面代码,如何实现Table2按不重复产品编号其最后一条的值(数量),写入Table1里?

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


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

Filler做不到。换种方式,使用getvalues去获取不重复的编号,然后遍历不重复的编号查询日期最大的记录

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/11/10 9:24:00 [只看该作者]

'Dim db = HySq-l.DataBaseFactory.CreateDatabase("my") 
'Dim Sql = "Selec-t 产品编号, max(日期) as  日期  From kcxb_tb   group by 产品编号" 
'Dim Cols1() As String = {"来源列一", "来源列二", "来源列三"}
'Dim Cols2() As String = {"来源列一", "来源列二", "来源列三"}

'Dim dt As system.data.DataTable = db.ExecuteDataSet(Sq-l).Tables(0)
'dt.TableName = "kcb_tb"

' For Each dr1 As System.Data.DataRow In dt.Rows
'    Dim dr2 As DataRow = DataTables("登记窗口_Table1").AddNew()
'    For i As Integer = 0 To Cols1.Length - 1
'        dr2(Cols2(i)) = dr1(Cols1(i))
'    Next
'Next

执行报错:
列“统计_数量”不属于表 xb_tb。


资料:MYSQL
主表的字段:日期,产品,数量

明细表的字段:日期,产品,统计_数量

需求:实现主表取明细表不重复,最后记录的数据或最后日期的数据,如何实现?




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


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/11/10 9:54:00 [只看该作者]

提示很明显了,列名不正确

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/11/10 10:07:00 [只看该作者]

排查字段,没有问题,放弃上面方法

实现下面需求,MYSQ-L,有其他代码?
需求:实现主表取明细表不重复,最后记录的数据或最后日期的数据,如何实现?
注:明细表的数据量比较大,
[此贴子已经被作者于2023/11/10 10:08:31编辑过]

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


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/11/10 10:15:00 [只看该作者]

SqlServer可以这样

Select a.*  From kcxb_tb as a inner join (Select 产品编号, max(日期) as  日期  From kcxb_tb   group by 产品编号) as b on a. 产品编号=b. 产品编号 and a.日期=b.日期

至于mysql的语法我也没用过,就不清楚了,自己上网搜搜

 回到顶部