请问这个SQL语句怎么写?(30分)

  • 主题发起人 主题发起人 drmy
  • 开始时间 开始时间
D

drmy

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在有两个表,主表为Test,另一个表为ParaCol
主表Test如下所示:(检测号为主键)
检测号 批号 色号 横向CV 支数
1 SDFS W911 12。9 2
2 DFdf W123 11.3 3
…….
ParaCol 表如下所示:(检测号和条联合起来作为主键)
检测号 条号 纵向CV值 平均值
1 0 1.2 56
1 1 1.5 70
…..
1 239 1.8 75
2 0 1.4 89
…..
2 239 1.6 100
….
我进行一次检测时,检测号会加1,由于每一次检测时是同时对240个对象加以检测,所以在ParaCol表中有一个名为
“条号”的Field,这两个表是通检测号相关联起来的。
简而言之,Test表记录了每次检测的总体情况,而ParaCol则记录了在每一次检测中的各对象的值.
现在我用了一个查询:”Select ParaCol.检测号,AVG(ParaCol.纵向CV值)AS 平均CV值,AVG(ParaCol.平均值)AS平均灰度值. Group by ParaCol.检测号 Order By 检测号”
得到了如下结果:
检测号 平均CV值 平均灰度值
1 1.34 58
2 1.56 60
……
当我想用Union 或Join语句将这个查询结果与主表中的内容组合起来时,却无法成功,
即:希望得到:
检测号 平均CV值 平均灰度值 横向CV 批号 色号
1 1.34 58 12.9 SDFS W911
2 1.56 60 11.3 DFdf W123

这样的结果.
请帮我查查如何去写这个联合查询语句.
十万火急,谢谢!

 
SELECT test.检测号, Avg(ParaCol.纵向CV值) AS 平均CV值,
Avg(ParaCol.平均值) AS 平均灰度值, test.横向CV, test.批号, test.色号
FROM test INNER JOIN ParaCol ON test.检测号 = ParaCol.检测号
GROUP BY test.检测号, test.横向CV, test.批号, test.色号;

试一下。
 
先针对ParaCol照你自己写的那样做个视图
然后拿主表Test和这个视图关联就比较简单了
 
SELECT distinct test.检测号, Avg(ParaCol.纵向CV值) AS 平均CV值,
Avg(ParaCol.平均值) AS 平均灰度值, test.横向CV, test.批号, test.色号
FROM test JOIN ParaCol ON test.检测号 = ParaCol.检测号
GROUP BY test.检测号;


 

试一试下面的语句,应该没问题的!!!!
select M.检测号,M.平均CV值,M.平均灰度值,T1.横向CV,T1.批号,T1.色号
(Select ParaCol.检测号,AVG(ParaCol.纵向CV值)AS 平均CV值,AVG(ParaCol.平均值)AS平均灰度值.
from paraCol
Group by ParaCol.检测号 Order By 检测号 ) M,Test T1 where M.检测号=t1.检测号
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部