以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [原创]按时间段UNION不确定数量但相似表名SQL写法 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=8821) |
-- 作者:shofihsu -- 发布时间:2010/12/11 22:45:00 -- [原创]按时间段UNION不确定数量但相似表名SQL写法 如果表A、表B结构相同,可以:
Select * From {表A} UNION Select * From {表B}
注意只能作为查询表。
现在我有许多表,这些表按月生产,表名 生产记录201009, 生产记录201010, 生产记录201011, 生产记录201012, 生产记录201101, 生产记录201102, .............. 结构完全相同 现在联合查询UNION,从某段时间到某段时间符合条件的记录 怎么写Select句? Select {record%}.生产记录ID From user_all_tables INNER JOIN {产品安排表} ON {record%}.产品ID = {产品安排表}.产品ID where table_name like \'record%\' and BETWEEN \'# var("开始时间") #\' AND \'# var("结束时间") #\'
是这是思路吗? [此贴子已经被作者于2010-12-11 22:49:35编辑过]
|
-- 作者:唐尸三摆手 -- 发布时间:2010/12/11 23:41:00 -- 你可以亲自试一下啊 |
-- 作者:shofihsu -- 发布时间:2010/12/12 10:34:00 -- 就是试过了不行才上来问得,在百度上也找了,在foxtable上也找了,无果。 |
-- 作者:狐狸爸爸 -- 发布时间:2010/12/12 10:53:00 -- 你可以尝试在foxtable中合成SQL语句,然后再执行:
例如:
Dim nms() As String = {"表A", "表B", "表C"}
|
-- 作者:shofihsu -- 发布时间:2010/12/12 11:09:00 -- Dim nms() As String = {"表A", "表B", "表C"}其中"表A", "表B", "表C"指的是什么?能不能具体讲一下,有点摸不到脉络 |
-- 作者:狐狸爸爸 -- 发布时间:2010/12/12 11:23:00 -- 呵呵,就是你要准备查询的那些表的表名啊。 |
-- 作者:狐狸爸爸 -- 发布时间:2010/12/12 11:31:00 -- 我来给你一段完整的,没有经过测试,请自行调试,但原理应该是通的:
假定你的数据源的链接名称为"nwnd",从2009年5月到2010年10月的表: Dim ym1 As Integer = "生产记录200905" Dim ym2 As Integer = "生产记录201010" lst = Connections("nwnd").GetTableNames lst.Add(nm) End IF Dim SQL As String
[此贴子已经被作者于2010-12-12 11:31:25编辑过]
|
-- 作者:lxl -- 发布时间:2010/12/12 17:22:00 -- 这种情况要用 UNION ALL 因为UNION 连接表之后,还会检查有没有重复记录。
|
-- 作者:狐狸爸爸 -- 发布时间:2010/12/12 19:05:00 -- 呵呵,是应该加上All,因为这里不需要排除重复。 |
-- 作者:shofihsu -- 发布时间:2010/12/13 10:45:00 -- 测试不行,我有如下疑问:
Dim lst As List(Of String) Dim ym1 As Integer = "生产记录200905"‘这里应该是String才对 Dim ym2 As Integer = "生产记录201010" ‘这里应该是String才对 lst = Connections("nwnd").GetTableNames lst.Add(nm) End IF Dim SQL As String |