主表
序号 班级
1 文班
2 理班
..............
细表
序号 收费类别 金额
1 学费 400
1 内宿费 100
2 学费 80
2 内宿费 300请问如何实现如下的结果,班级分类不只是文班和理班,还有其它的班别 ?
收费类别 金额 文班 理班 ................
学费 480 400 80 ................
内宿费 400 100 300 ................ 则是把主表的班级的值变成列名
序号 班级
1 文班
2 理班
..............
细表
序号 收费类别 金额
1 学费 400
1 内宿费 100
2 学费 80
2 内宿费 300请问如何实现如下的结果,班级分类不只是文班和理班,还有其它的班别 ?
收费类别 金额 文班 理班 ................
学费 480 400 80 ................
内宿费 400 100 300 ................ 则是把主表的班级的值变成列名
解决方案 »
- 【OnMouse事件】关于Panel中子控件的事件
- 给群群的分,算你狠~~~
- 新人开发程序,大虾,请帮忙
- idftp中的一个问题
- 在繁體操作系統中安裝簡體的SQL SERVER2000後,其中的存儲過程內創建臨時表的語句無效?
- 在内存中读取字符串,100分,不够再加100,再不够再加100
- 如何控制Webbrowser中也面的上下左右移动
- Delphi 写的dll 怎么让vb调用。
- 急!!!请问shellexecute用的是那个头文件?在线等待,立即给分!
- phosphor(蜗牛),WorldCreater(造化天尊),liuyingming(jake)进来取分!
- 想问一下,如何把一张图片添加到自建的表中,而不是通过将图片复制到剪贴板中?
- 大家能不能介绍几个国外的比较好的编程论坛?
必须用代码将数据搜集。至于虚拟表结构,可以使用TClientDataSet,它是内存表
如果不固定,可能只能写存储过程了.
不过,如果你是做报表,可用交叉表,应该是最方便的.
如字段名等
主表 a 细表 b ;
select *
from a,b
where 你 的条件!~~我试试在给你答复
select distinct a.*,b.* from 主表 as a ,细表 as b where a.序号=b.序号 group by b.收费类别
序号 班级
1 文班
2 理班
..............得到临时表结构,
创建临时表,给临时表添加字段如下:
收费类别 金额 文班 理班 ................
然后给临时表INSERT
'insert into temp (收费类别,金额,' + v1 + ') values ' + v2 + ''
v1可由你的主表通过循环得到:
v1 :=v1+ + Query1.Fields[i].AsString + ',';
在循环外面作
v1 := copy(v1, 1, length(v1) - 1);//去掉最后多余的“,”
v2可由你的主表和细表通过循环得到
v2 := '(' + '''收费类别'',''金额'''+ ',' + v3 + ')';
v3由: v3 := v3 + '''' + Query2.Fields[i].AsString + ''',';
lllygang(老阿Q)说得对。