Foxtable(狐表)用户栏目专家坐堂 → sql


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

主题:sql

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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
sql  发帖心情 Post By:2020/5/5 10:00:00 [只看该作者]

sql代码里面加了And  " & Filter & " 后提示列名 '_identify' 无效,不加的话正常显示。

请问老师什么原因,怎么改?

Dim xl As WinForm.ComboBox = e.Form.Controls("系列")
Dim wgh As WinForm.ComboBox = e.Form.Controls("物供号")


Dim dt1 As WinForm.DateTimePicker = e.Form.Controls("开始日期")
Dim dt2 As WinForm.DateTimePicker = e.Form.Controls("结束日期")


Dim filter As String = "  _identify>0 "

If  xl.Text > "" Then
    filter= filter & " and 系列 =  '" & xl.Text & "'"
End If

If  wgh.Text > "" Then
    filter= filter & " And 物供号 =  '" & wgh.Text & "'"
End If


If  dt1.Text > "" Then
    filter= filter & " And 货期 >= '" & dt1.Text & "'"
End If

If  dt2.Text > "" Then
    filter= filter & " And 货期 <= '" & dt2.Text & "'"
End If

Dim t1 As WinForm.Table = e.Form.Controls("Table1")
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = 

dt = cmd.ExecuteReader()
t1.Table.DataSource  =dt


[此贴子已经被作者于2020/5/5 16:48:03编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

Dim filter As String = "  [_identify] >0 "

identify这个名字和数据库的关键字有冲突,需要加上中括号

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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2020/5/5 11:45:00 [只看该作者]

加上去还是一样提示

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

说明当前表没有_identify这个列

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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2020/5/5 14:59:00 [只看该作者]

是的,是这个问题,改了之后提示group附近有语法错误呢

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

order by和group by 不能一起使用。其实直接的去掉order by即可,没有什么用,如果要排序

dt = cmd.ExecuteReader()
t1.Table.DataSource  =dt
t1.Table.sort = “物供号


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


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2020/5/5 15:08:00 [只看该作者]

去掉order by 还是有这个提示

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

select 里面出现的所有非集合函数用法的列名,都必须放到group by 里面。建议先分组,再进行计算,如

select  aa,bb,cc,dd,cc-dd as kk from (select aa,cc,dd,sum(bb) as bb from 表A group by aa,cc,dd) as a

1楼的sql也没看到有和分组有关的用法,把group by分组的用法去掉即可

 回到顶部