以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]用SQL语句 合并表格 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=148584) |
-- 作者:5233655cs -- 发布时间:2020/4/10 15:28:00 -- [求助]用SQL语句 合并表格 老师,下午好! 我现在有2个SQL外部数据表 tb1 和 tb2 表的结构都一样的。 状态,提案日期,提案人,提案名称 他们都来自外部数据源"ImproveSQL" 我现在想做个窗口1_table1 用来展示 tb1和tb2中 符合条件的行。 比如 状态=‘完成’ 的行 如何使用SQL 直接调用后台数据,然后在窗口1_table1中展示出来? |
-- 作者:sloyy -- 发布时间:2020/4/10 15:37:00 -- 用SQLJoinTableBuilder合并多个查询结果 |
-- 作者:5233655cs -- 发布时间:2020/4/10 15:51:00 -- 有类似的实例吗 不太懂,,, |
-- 作者:有点蓝 -- 发布时间:2020/4/10 15:51:00 -- select 状态,提案日期,提案人,提案名称 from tb1 where 状态=‘完成’ union all select 状态,提案日期,提案人,提案名称 from tb2 where 状态=‘完成’ |
-- 作者:5233655cs -- 发布时间:2020/4/10 15:57:00 -- 老师, 如果我有 10几个表, tb1 tb2 ...tb15难道需要十几个select 用 union合并? 能不能用类似 for .....next语句 进行简化? 如何写代码呢? [此贴子已经被作者于2020/4/10 15:57:44编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/4/10 16:23:00 -- 我只懂union 。不知道高版本的SqlServer有没有新的语法可以用 |
-- 作者:5233655cs -- 发布时间:2020/4/10 16:58:00 -- 以下部分程序, depart(0) = "Inst" depart(1) = "HRADM" Dim
filter As String filter
= "状态 = \'等待其他部门审核\'" Dim
Sel As String Sel="" Sel=
"Sel ect [序号],[班组],[状态] From
{" &
depart(0) & "} where "
& filter & " union all
" & "Sele ct
[序号],[班组],[状态] From {"
& depart(1) & "} where " &
filter messagebox.show(sel) Tables("外部部门审批_Table1").Fill(Sel,"ImproveSQL",True) 老师, 我执行以后只显示第一个表的内容, 但是第二个表符合条件的内容不出现, 这个是为什么? (实际上第二个表上 是存在符合条件的行的) |
-- 作者:有点蓝 -- 发布时间:2020/4/10 17:11:00 -- sql拿到数据库里执行有没有问题? |
-- 作者:5233655cs -- 发布时间:2020/4/10 19:55:00 -- Dim filter As String filter = "其它部门审批_I = 1" 这里1 代表 true 如果我这里改成 filter = "状态 = \'已完成\'" 就没问题 Dim Sel As String Sel="" Dim i As Integer For i = 0 To 10 Sel= Sel & "Sel ect [序号],[班组] From {" & depart(i) & "} where " & filter & " union all " Next Sel= Sel & "Sel ect [序号],[班组] From {" & depart(11) & "} where " & filter Tables("外部部门审批_Table1").Fill(Sel,"ImproveSQL",True) 这里执行了以后 出现 “se lect 语句出现错误, 请检查语法和数据源设置。” 老师 能帮忙看下 错在哪儿吗?
|
-- 作者:5233655cs -- 发布时间:2020/4/10 20:01:00 -- 额 找到原因了 是我数据源的问题。 |