救命啊,数据库查询(100分)

  • 主题发起人 主题发起人 wyuh
  • 开始时间 开始时间
W

wyuh

Unregistered / Unconfirmed
GUEST, unregistred user!
dates times name max min
---------------------------------------------------
01-9-25 13:00:00 A1 22 3
01-9-25 13:00:00 A2 25 10
01-9-25 13:00:00 A3 18 6
01-9-25 13:00:00 A4 18 6
01-9-25 13:00:00 A5 18 6
01-9-25 10:00:00 A1 18 6

01-9-29 15:00:00 A1 19 8


根据上面的原始库,我要做一个日报表如下:
A1 A2 .... A5
time max min max min ....max min

该如何实现呢?我下面的SQL查询有什么问题呢?
可以编译通过,却无法生成报表
其中 tablename bbday为两个字符串变量
分别表示原始表的名称和要生成的日报表的日期

with ADOQuery1 do begin
with SQL do begin
Clear;
Add('select times,temp1,temp2,temp3,temp4,temp5');
Add(' from (Select times,');
Add('case name when "A1" then max else 0 end temp1,');
Add('case name when "A2" then max else 0 end temp2,');
Add('case name when "A3" then max else 0 end temp3,');
Add('case name when "A4" then max else 0 end temp4,');
Add('case name when "A5" then max else 0 end temp5)');
Add(' From (Select times,name,max');
Add(' from '+tablename+' where dates="'+bbday+'") T) TT');
Add(' group by times');
end;
Open;
end;
 
哪位大侠救救我啊!!!
 
Add('select times,sum(temp1),sum(temp2),sum(temp3),sum(temp4),sum(temp5) ');
Add(' from (Select times,');
Add('case name when "A1" then max else 0 end temp1,');
Add('case name when "A2" then max else 0 end temp2,');
Add('case name when "A3" then max else 0 end temp3,');
Add('case name when "A4" then max else 0 end temp4,');
Add('case name when "A5" then max else 0 end temp5 ');
Add(' From (Select times,name,max ');
Add(' from ' + tablename + ' where dates="' + bbday + '") T) TT ');
Add(' group by times');
 
sum() 这里是求和函数?
 
是求和函数,如果不这样做,同一时间会产生很多数据
time temp1 temp2 temp3
13:00:00 22 0 0
13:00:00 0 25 0
13:00:00 0 0 18
上面的数据显然不是你要的,求和了以后则是这样的:
time temp1 temp2 temp3
13:00:00 22 25 18
我想这才是你要的数据。
 
接受答案了.
 
可是还是没有给出解决问题的方法
我现在有两个方案:都是通过临时表(因为我还有很多其它不相关的数据库的数据要写入报表)
1。通过写程序,不断地判断来写表,已经实现,单速度太慢
2。通过多层嵌套的SQL查询来实现
但是我对SQL很生疏,而我又在外地出差,出入又不方便
所以没有资料可查,上网太慢,对SQL有很多疑惑
不知哪位大哥能帮我解答
1.order by 和group by是什么意思?
2.ADOQUERY里的SQL语句中的变量在程序中如何赋值?好像跟QUERY的赋值不同
3.ADOQUERY里的SQL语句中,如果要查询的表是变量,该如何设置?用:表名变量吗?
好像不行,我这样做了,可好像不能通过
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
894
import
I
后退
顶部