数据集能不能在Sql语句中当表名使用?
从:
adoquery1.close;
adoquery1.sql.text:='select 项目ID,项目名称, 月分, 月金额合计 from 项目月统计表';
adoquery1.open;
得数据集如下:
项目ID,项目名称, 月分, 月金额合计
---------------------------------
1, 饼干, 一月, 200
2, 月饼, 一月, 40
3, 可乐, 一月, 450
4, 篮球, 一月, 2000
5, 汽车, 一月, 1000
1, 饼干, 二月, 1200
2, 月饼, 二月, 140
3, 可乐, 二月, 1450
4, 篮球, 二月, 12000
5, 汽车, 二月, 11000
....
我希望通过以下Sql语句变换上面的数据集,以上的数据集,以下简称A^:
Select 项目ID,项目名称 from A^ left outer join
(Select 月金额合计 as 一月金额 from A^ where 月份='一月') as 一月表
on A^.项目ID=一月表.项目ID
Left outer join
(Select 月金额合计 as 二月金额 from A^ where 月份='二月') as 二月表
on A^.项目ID=二月表.项目ID
..........
变换后的数据集如下
项目ID,项目名称, 一月份,二月份 , ....
-----------------------------------
1, 饼干, 200, 1200 , ....
2, 月饼, 40, 140 , ....
3, 可乐, 450, 1450, ....
4, 篮球, 2000, 12000, ....
5, 汽车, 1000, 11000, ....
问题:
我怎么才能得到A^,这个A^在我的Sql语句用什么代替?
以前想的几个方法,都被否定:如 把'select 项目ID,项目名称, 月分, 月金额合计 from 项目月统计表'这个数据集写入基础表,就可以得到一个具体
的A^表,但想到是多用户操作,不妥.写入全局临时表类似; 我希望通过建立临时表来代替A^,但A^又不能在delphi中用,因为一个会话完了A^就不存在了.高手救救我吧.