原始表:
ID 名称 取值 时间
1 传感器1 20 10:00
2 传感器2 30 10:00
3 传感器1 21 11:00
4 传感器2 29 11:00
5 传感器1 20 12:00
6 传感器2 30 12:00通过查询显示为
传感器1 传感器2 时间
20 30 10:00
21 29 11:00
20 30 12:00
ID 名称 取值 时间
1 传感器1 20 10:00
2 传感器2 30 10:00
3 传感器1 21 11:00
4 传感器2 29 11:00
5 传感器1 20 12:00
6 传感器2 30 12:00通过查询显示为
传感器1 传感器2 时间
20 30 10:00
21 29 11:00
20 30 12:00
(select value,time from test where name='传感器1')s,
(select value,time from test where name='传感器2')g
where s.time=g.time ;
as
select 1 a, '传感器1' as b, 20 as c ,'10:00' as d from dual
union
select 2 a, '传感器2' as b, 30 as c ,'10:00' as d from dual
union
select 3 a, '传感器1' as b, 21 as c ,'11:00' as d from dual
union
select 4 a, '传感器2' as b, 29 as c ,'11:00' as d from dual
union
select 5 a, '传感器1' as b, 20 as c ,'12:00' as d from dual
union
select 6 a, '传感器2' as b, 30 as c ,'12:00' as d from dual select
sum(decode(b,'传感器1',c,0)) 传感器1,
sum(decode(b,'传感器2',c,0)) 传感器2,
d
from d
group by d用的oracle
好像用case语句是可以实现的!
今天较忙,明天测试后,回复大家。
传感器名只有几个的话,直接SQL,2楼的应该差不多。
传感器名很多的话。先用SQL查询名称,再用Delphi根据查询到的名称生成SQL。