SQ-L,如何用SQ-L实现将表1,
表4的字段:编号,数量
表1的字段:编号,数量
表2的字段:编号,数量
表3的字段:编号,数量
[此贴子已经被作者于2024/7/12 10:04:50编辑过]
下面是sqlserver的用法,不同数据库,可能语法有差异,自行网上搜索
select a.编号,a.数量 as 数量1,b.数量 as 数量2,c.数量 as 数量3 from 表1 as a inner join 表2 as b on a.编号=b.编号 inner join 表3 as c on a.编号=c.编号
INSERT INTO 表4(编号,日期,数量1, 数量2, 数量3)
SELEC-T
a.编号 as 编号,
a.日期 as 日期,
a.数量 as 数量1,
NULL as 数量2,
NULL as 数量3
FROM 表1 as a
UNION ALL
SELEC-T
b.编号 as 编号,
b.日期 as 日期,
NULL as 数量1,
b.数量 as 数量2,
NULL as 数量3
FROM 表2 as b
UNION ALL
SELEC-T
c.编号 as 编号,
c.日期 as 日期,
NULL as 数量1,
NULL as 数量2,
c.数量 as 数量3
FROM 表3 as c;
问题二:在ADO中,上面代码看一个整个?还是要分写?
Dim db = HySq-l.DataBaseFactory.CreateDatabase("myQ") '
Dim Sq-l = 上面代码
[此贴子已经被作者于2024/7/15 11:54:47编辑过]
2楼不行,因为三表的数据量不同,内连接,只在查询同存数据,不存在则过滤,达不到需求。
需求是三表合并,是将三表的所有数据合并到表4.如何实现?
试试
select a.编号,b.数量 as 数量1,c.数量 as 数量2,d.数量 as 数量3 from (select distinct 编号,日期 from (select 编号,日期 from 表1 union all select 编号,日期 from 表2 union all select 编号,日期 from 表3) as a) as a left join 表1 as b on a.编号=b.编号 left join 表2 as c on a.编号=c.编号 left join 表3 as d on a.编号=d.编号
出现空值
[此贴子已经被作者于2024/7/15 11:55:21编辑过]
加上日期
…… as a left join 表1 as b on a.编号=b.编号 and a.日期=b.日期 left join 表2 as c on a.编号=c.编号 and a.日期=c.日期 ……
[图一
[此贴子已经被作者于2024/7/15 11:54:19编辑过]