这个查询如何写?

forest 2001-10-08 11:18:31
在SQL数据库中有若干表:
ReactorInfo:
ReactorName(varchar)
Description(varchar)
-----------------------
TagInfo:
TagName(varchar)
ReactorName(varchar)
-----------------------
Tag(对于TagInfo中的每条记录都有与其TagName同名的表):
TagName(varchar)
theTime(DateTime)
Value(float)

其中一个ReactorName对应多个TagName,而TagInfo表中的所有TagName均对应一个表,其中记录了该TagName在不同时间的数值.

现在想把同一ReactorName的所有TagName的最新数值都显示在一个DBGRID中,请问怎么写SQL呢?


...全文
124 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
forest 2001-10-08
  • 打赏
  • 举报
回复
例如对于ReactorName='T101'这一纪录:
在TagInfo中有三条对应纪录:
TagName ReactorName
1. TI1101 T101
2. TI1102 T101
3 TI1103 T101
则数据库中对应有三个表:TI1101,TI1102,TI1103。
这三个表的结构是相同的,均包括两个字段:
theTime(DateTime) keyword
Value(float)
以TI1101为例,其纪录如下:
TheTime Value
2001/10/8 10:10 122.1
2001/10/8 10:15 123.3
2001/10/8 10:20 122.9
2001/10/8 10:25 123.1
2001/10/8 10:30 122.7

我想得到的结果是这样的:
TagName theValue(时间最新的一行)
TI1101 122.7
TI1102 10.987
TI1103 586.98

请大家想想办法。分不够可以再加。


forest 2001-10-08
  • 打赏
  • 举报
回复
谢谢支持,但问题没有解决。
这个语句的难度在于要在多个表中取数据。因为每个TagName有一个表。
请继续。
jianping0 2001-10-08
  • 打赏
  • 举报
回复
select a.*,b.theTime,b.Value from (select m.*,n.TagName
from ReactorInfo m,TagName n where m.ReactorName=n.ReactorName) a,Tag b
where a.TagName=b.TagName
zds0707 2001-10-08
  • 打赏
  • 举报
回复
select Tag.TagName, Tag.theTime
from Tag,TagInfo
where Tag.TagName=TagInfo.TangName
and TagInfo.ReactorName=MyReactorName
Jneu 2001-10-08
  • 打赏
  • 举报
回复
up
Jneu 2001-10-08
  • 打赏
  • 举报
回复
gz
tikkypeng 2001-10-08
  • 打赏
  • 举报
回复
根据TagInfo表中的记录数进行循环Union~~~

Select TagName,
(Select Value From :TableName Where TheTime=(Select Max(TheTime) From :TableName)) As TheValue
From TagInfo Order By TagName

Union

........

参数:TableName就是TagInfo中的TagName字段的值
klcn 2001-10-08
  • 打赏
  • 举报
回复
使用动态SQL,From后面的表名是不固定的。
SELECT TOP 1 thevalue,:tablename1 FROM :tablename1 ORDER BY TheTime
UNION ALL
...
407107 2001-10-08
  • 打赏
  • 举报
回复
获得表名,用union根据表名拼sql语句实现:
select max(?) from table1 union select max(?) from table2....
kofxdm 2001-10-08
  • 打赏
  • 举报
回复
gz=关注!?呵呵
xiazhihan 2001-10-08
  • 打赏
  • 举报
回复
gz是什么意思?
yopeng 2001-10-08
  • 打赏
  • 举报
回复
gz
blackfiles 2001-10-08
  • 打赏
  • 举报
回复
gz
cobi 2001-10-08
  • 打赏
  • 举报
回复
gz

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧