Foxtable(狐表)用户栏目专家坐堂 → [原创]按时间段UNION不确定数量但相似表名SQL写法


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

主题:[原创]按时间段UNION不确定数量但相似表名SQL写法

帅哥哟,离线,有人找我吗?
狐狸爸爸
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/12/13 10:53:00 [只看该作者]

1、变量定义错误,应该用String。

2、字符串其实也可以比较大小的。

 

如果你不通过,就改为用整数比较算了。

[此贴子已经被作者于2010-12-13 10:53:08编辑过]

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


加好友 发短信
等级:婴狐 帖子:63 积分:1252 威望:0 精华:0 注册:2009/6/8 11:12:00
  发帖心情 Post By:2010/12/13 15:03:00 [只看该作者]

字符串的确可以比较大小,学习了。

 

应该定义两个lst,

lst = Connections("nwnd").GetTableNames
For Each nm As String In lst
     If nm>=ym1 AndAlso nm<=ym2 Then

        lst.Add(nm)

 

这个得到的永远是数据源所有的表名称

 

Dim Lst1 As List(Of String)
Dim Lst2 As New List(of String)
Dim ym1 As Integer = "生产记录200905"

Dim ym2 As Integer = "生产记录201010"

Lst1 = Connections("AsiaCardServera").GetTableNames
For Each nm1 As String In Lst1
    If nm1>=ym1 AndAlso nm1<=ym2 Then
        Lst2.Add(nm1)'
End IF
Next
Dim SQL As String
For Each nm2 As String  In Lst2
    If SQL > "" Then
        SQL = SQL & " UNION ALL "
    End If
    SQL = SQL & "Select * From {"& nm2 &"}"
Next
OutPut.Show("合成的SQL语句:" & SQL)


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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/12/13 15:24:00 [只看该作者]

图片点击可在新窗口打开查看

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


加好友 发短信
等级:婴狐 帖子:63 积分:1252 威望:0 精华:0 注册:2009/6/8 11:12:00
  发帖心情 Post By:2010/12/13 15:48:00 [只看该作者]

OutPut.Show到是可以了,

Tables("窗口1_Table1").Fill("SQL","AsiaCardServera",True)

好像不行。

麻烦再指点一下。

 

还有字符串比较中如何排除年表

 

生产记录2008,’年表

生产记录2009,’年表

生产记录2010,’年表

生产记录201009,’月表

生产记录201010,’月表

生产记录201011,’月表

生产记录201012,’月表

生产记录201101,’月表

生产记录201102,’月表

..............


 

[此贴子已经被作者于2010-12-13 16:06:25编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/12/13 16:24:00 [只看该作者]

以下是引用狐狸爸爸在2010-12-13 15:24:00的发言:
图片点击可在新窗口打开查看

Dim ym1 As Integer = "生产记录200905"    ?????


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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/12/13 16:30:00 [只看该作者]

排除年表:

 

For Each nm1 As String In Lst1
    If nm1>=ym1 AndAlso nm1<=ym2 AndAlso nm1.Length = ym1.Length Then
        Lst2.Add(nm1)'
End IF


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


加好友 发短信
等级:婴狐 帖子:63 积分:1252 威望:0 精华:0 注册:2009/6/8 11:12:00
  发帖心情 Post By:2010/12/13 20:47:00 [只看该作者]

不错,的确很神奇。哈哈,谢谢了。


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


加好友 发短信
等级:婴狐 帖子:63 积分:1252 威望:0 精华:0 注册:2009/6/8 11:12:00
  发帖心情 Post By:2010/12/14 10:23:00 [只看该作者]

请问红色部分代码有问题吗,怎么---------------------------
提示
---------------------------
Select语句执行错误,请检查语法及数据源设置。
---------------------------
确定  
---------------------------

Dim Lst1 As List(Of String)
Dim Lst2 As New List(of String)
Dim ym1 As String = "生产记录200901"
Dim ym2 As String = "生产记录201212"
Lst1 = Connections("AsiaCardServera").GetTableNames
For Each nm1 As String In Lst1
If nm1>=ym1 AndAlso nm1<=ym2 AndAlso nm1.Length = ym1.Length Then
        Lst2.Add(nm1)'
End IF
Next
Dim SQL As String
For Each nm2 As String  In Lst2
    If SQL > "" Then
        SQL = SQL & " UNION ALL "
    End If
    SQL = SQL & "Select * From {"& nm2 &"}"
Next

Tables("窗口2_Table1").Fill("'"& SQL &"'","AsiaCardServera",True)


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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/12/14 10:30:00 [只看该作者]

图片点击可在新窗口打开查看

 

Tables("窗口2_Table1").Fill(SQL, "AsiaCardServera", True)


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


加好友 发短信
等级:婴狐 帖子:63 积分:1252 威望:0 精华:0 注册:2009/6/8 11:12:00
  发帖心情 Post By:2010/12/14 10:57:00 [只看该作者]

还是同样提示:---------------------------
提示
---------------------------
Select语句执行错误,请检查语法及数据源设置。
---------------------------
确定  
---------------------------


 回到顶部
总数 22 上一页 1 2 3 下一页