这个sql该怎么写 ( 积分: 100 )

  • 主题发起人 主题发起人 fhp023
  • 开始时间 开始时间
F

fhp023

Unregistered / Unconfirmed
GUEST, unregistred user!
各位帮忙看看这个语句怎么写?我有两个表,结构如下:table1(id,node,field,grp),
table2(time,group,n1,n2,n3), 比如说table1的几组数据有:1,aa,2,1
2,bb,1,2
3,cc,3,1

table2的数据有: 2005-10-26 9:04:53,2,3,5,7
2005-10-27 9:04:53,1,9,8,4
2005-10-28 9:04:53,1,8,6,2
我现在要统计出某时刻node的sum(n1),sum(n2),sum(n3),请问这个sql语句该怎么写?在线等!
也就是说table1的field字段的值是和table2表中的字段名n1,n2,n3去对应,然后统计出数据
 
各位帮忙看看这个语句怎么写?我有两个表,结构如下:table1(id,node,field,grp),
table2(time,group,n1,n2,n3), 比如说table1的几组数据有:1,aa,2,1
2,bb,1,2
3,cc,3,1

table2的数据有: 2005-10-26 9:04:53,2,3,5,7
2005-10-27 9:04:53,1,9,8,4
2005-10-28 9:04:53,1,8,6,2
我现在要统计出某时刻node的sum(n1),sum(n2),sum(n3),请问这个sql语句该怎么写?在线等!
也就是说table1的field字段的值是和table2表中的字段名n1,n2,n3去对应,然后统计出数据
 
table1与table2通过什么字段关联?
 
没有关联,就是table2查询出来的结果去对应table1的字段
也就是说我把table2和table1两个表是横竖的关系
大家帮忙看看怎么写?
 
楼主对字段的含义解释一下啊
 
字段没什么含义的,意思主要是通过table1中的字段field的值去对应table1中的字段n1,n2,n3,即table1是竖着的,而table2是横着的表结构,不知大家对我所表达的意思明白没?
 
谢谢大家,在线等解决!
 
对不起问题还没解决,答案不对,大家帮忙看看怎么写?
 
T1表( id, X )
1, a
2, b
3, c
T2表( id,a,b,c)
1, 10,20,30
2, 10,25,31
3, 1, 3, 4

procedure TForm1.Button1Click(Sender: TObject);
var sqlstr : string ;
adotmp : Tadoquery ;
begin
sqlstr:= 'select X from T1' ;
adotmp:=Tadoquery.Create(nil);
adotmp.ConnectionString:=adoquery1.ConnectionString ;
adotmp.close ;
adotmp.SQL.Clear ;
adotmp.SQL.Add(sqlstr) ;
adotmp.Prepared ;
adotmp.Open ;
sqlstr:=' select result=sum('+Trim(adotmp.fieldbyname('X').AsString)+') from T2 ';
adoquery1.Close ;
adoquery1.SQL.Clear ;
adoquery1.sql.Add(sqlstr) ;
adoquery1.open ;

end;

运行后的结果是 result =21,48,65 即为所要的 sum(n1) sum(n2) sum(n3) 的值,你是不是这个意思呢?
 
表述不清楚﹐
 
谢谢富翁linuxnc帮忙,我还正在测试,我用的是sql2000数据库
我数据库很小,要不我用qq传给你,帮我看看,我花了很多时间
但还是没写对,好吗?我的qq 59177937
 
SELECT node,n1,n2,n3,n4
FROM T_analog T1,
(select grp1, SUM(n1) AS n1, SUM(n2) AS n2, SUM(n3) AS n3, SUM(n4) AS n4
from T_real
GROUP BY grp1) as A
where T1.grp1 = A.grp1
我的最后答案。你说你要的结果是
结果应该是
n1 n2 n3
a 15 9 12
b 0 0 0
呵呵!
 
后退
顶部