帮忙看个查询

IMBIRDMAN 2007-09-05 02:01:32
在视图A中从试图B中查寻纪录。包含TransID,TransTime,Name,Payment等字段。查询的结果中会出现TransID相同的纪录,目前想得到的结果是对于TransID相同的纪录只取TransTime最大的那一条。也就是每一条TransID只能出现一条记录。
我目前的视图写法如下
SELECT TransID,TransTime,Name,Payment
FROM
{
SELECT TransID,TransTime,Name,Payment
FROM B AS B_1 INNER JOIN
{
SELECT MAX(TransTime) TransTime,TransID
FROM B
GROUP BY TransID
} AS B_2
ON B_1.TransTime=B_2.TransTime AND B_1.TransID=B_2.TransID
}
这样的话,需要两次查询B视图,效率不高。大家帮忙优化一下。
...全文
209 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
IMBIRDMAN 2007-09-05
  • 打赏
  • 举报
回复
噢,了解。
多谢各位。
子陌红尘 2007-09-05
  • 打赏
  • 举报
回复
对视图似乎没有太好的办法。
IMBIRDMAN 2007-09-05
  • 打赏
  • 举报
回复
红尘:我刚才作了个实验,一共查出45万条数据,用inner join的花了40-51秒,where子句的查询用了1分40-1分58秒。有没有更高效率的方法?
IMBIRDMAN 2007-09-05
  • 打赏
  • 举报
回复
where子句中和inner join子句中对B的查询,对整个试图在效率上有什么影响?请大虾赐教。
OracleRoob 2007-09-05
  • 打赏
  • 举报
回复
SELECT
B_1.TransID,
B_1.TransTime,
B_1.Name,
B_1.Payment
FROM B AS B_1 INNER JOIN
(
SELECT MAX(TransTime) TransTime,TransID
FROM B
GROUP BY TransID
) AS B_2
ON B_1.TransTime=B_2.TransTime AND B_1.TransID=B_2.TransID
OracleRoob 2007-09-05
  • 打赏
  • 举报
回复
SELECT TransID,TransTime,Name,Payment
FROM B AS B_1 INNER JOIN
(
SELECT MAX(TransTime) TransTime,TransID
FROM B
GROUP BY TransID
) AS B_2
ON B_1.TransTime=B_2.TransTime AND B_1.TransID=B_2.TransID
子陌红尘 2007-09-05
  • 打赏
  • 举报
回复
select
t.TransID,t.TransTime,t.Name,t.Payment
from
B t
where
t.TransTime=(select max(TransTime) from B where TransID=t.TransID)

select
t.TransID,t.TransTime,t.Name,t.Payment
from
B t
where
t.TransTime=(select top 1 TransTime from B where TransID=t.TransID order by TransTime desc)
WangZWang 2007-09-05
  • 打赏
  • 举报
回复
--如:
Select * from B as t
where not exists(Select * from B where
TransID=t.TransID and TransTime>t.TransTime)
子陌红尘 2007-09-05
  • 打赏
  • 举报
回复
select
t.TransID,t.TransTime,t.Name,t.Payment
from
B t
where
not exists(select 1 from B where TransID=t.TransID and TransTime>t.TransTime)

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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