实在没法,求大家想想这个SQL如何写(40分)

  • 主题发起人 主题发起人 youxiazhu
  • 开始时间 开始时间
Y

youxiazhu

Unregistered / Unconfirmed
GUEST, unregistred user!
要求确实很啰嗦:
1 有多个结构相同的表,每个表约1000条记录。字段:bj,cj . 其中bj字段中,1000条记录里共有10个不同的值。
2 首先要对每个表针对bj字段分组计算cj的平均值,这样每个表可以得到包含10条记录的新表(暂时叫它表),字段为:bj,cj1;bj,cj2;bj,cj3;……
3 然后将所得到若干新表连接为一个表,字段为:bj,cj1,cj2,cj3,……
好像不是很难,可是我需要的是一条语句完成上述内容,而且不能使用子查询,嵌套查询等高级用法,因为我需要将这条语句放到Query的SQL属性中。
我试了很多次,没有成功,大家帮个忙把。
 
select bj,cj1 from (select bj, avg(cj1) as cj1 from table1 group by bj) t1 left join (select bj, avg(cj1) as cj1 from table1 group by bj) t2 on t1.bj=t2.bj
left join (select bj, avg(cj1) as cj1 from table1 group by bj) t3..............
 
select a.bj,cj1,cj2 from (
(select distinct bj,avg(cj1) as cj1 from t1 group by bj)a
left join
(select distinct bj,avg(cj2) as cj2 from t2 group by bj)b
on
a.bj=b.bj)
 
非常感谢两位,不过有一个问题,这样的语句可以作为ADOQuery的SQL属性吗?我在使用时总是得到:syntax error
 
当然是可以的。。。
你细心查查
 
就是简单的select yw from (select yw,sx from t1)都执行不了,也是这个错误。
 
select yw from (select yw,sx from t1) a
即可,給子查詢一個別名
 
楼上的应该可以解决问题吧!
 
Data_Module1.ADOQuery1.SQL.Clear;
Data_Module1.ADOQuery1.SQL.Add(...);
 
多人接受答案了。
 
后退
顶部