首先,透视表的源是需要一个完整的表
如
[表结果]
型号,期初,收入,发出
现在我们有三个表
表一 [期初]表结构是
型号,数量
A,2
表二 [收入]
型号,数量
A,1
表三 [发出]
型号,数量
A,1
从表1,2,3中可以看出,它们只有两个列,我们要把这三个表合成[表结果]的结果4个数据列,就要用到SQL语句虚拟
select 型号,数量 as 期初,0 as 收入,0 as 发出 from [期初$]
这样,就把[期初] 表的数据结构变成了"型号,期初,收入,发出"的形式,得到的结果是
型号,期初,收入,发出
A,2,0,0
于是,再用
select 型号,0 as 期初,数量 as 收入,0 as 发出 from [收入$] ,得到的结果是
型号,期初,收入,发出
A,0,1,0
最后,使用 union all
把两表联在一起,
select 型号,数量 as 期初,0 as 收入,0 as 发出 from [期初$]
union all
select 型号,0 as 期初,数量 as 收入,0 as 发出 from [收入$]
union all
select 型号,0 as 期初,0 as 收入,数量 as 发出 from [发出$]
,得到的结果是
型号,期初,收入,发出
A,2,1,0 --从期初得到
A,0,1,0 --从收入得到
A,0,0,0 --从发出得到 因为表三没有数据,所以不会显示
得到一个完整的结构,就可以进行数据透视了
[ 本帖最后由 寻迷 于 2009-2-18 14:05 编辑 ] |