以下是引用lqlfnm在2013-8-29 14:27:42的发言:
有4个表,有个相同的字段a,各有个日期型字段b1,b2,b3,b4,其它字段类型及字段个数均不等。如何按给定的一个aa值和日期值bb,将4个表中凡是符合"a=aa 且日期型字段>bb"的记录都筛选出来,按日期型字段排序后呈现出来?如:
2012-01-01 aa 计划 3件
2012-01-05 aa 核减 张三
2012-05-12 aa 进库 200件 2012040001
楼主我跟你说,你这个查询是非常简单的查询,只要用UNION ALL子句合并四个表的查询结果就行了。但是,但是,但是合并表要求:输出字段数必须相等;相应位置上的字段值类型要兼容。你示例中第三行多出一个字段是不行滴,除非你输出字段按字段数最多的那个表设,不存在的字段按类型输出空字串或0值。
现在就按你的示例,可以做成这样:
SELECT B1,A,Other1,Other2,"" FROM T1 WHERE A=AA AND B1>BB ;
UNION ALL ;
SELECT B2,A,Other1,Other2,"" FROM T2 WHERE A=AA AND B2>BB ;
UNION ALL ;
SELECT B3,A,Other1,Other2,Other3 FROM T3 WHERE A=AA AND B3>BB ;
ORDER BY B3
不知道你看懂了没?
[
本帖最后由 taifu945 于 2013-8-29 21:34 编辑 ]