首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

查询时过滤一部分不符合要求的数据

2013-11-09 
查询时过滤部分不符合要求的数据我现在可以查询出某时间段内某张的卡所有流水,我的sql如下:我的不行?您的

查询时过滤部分不符合要求的数据
我现在可以查询出某时间段内某张的卡所有流水,我的sql如下:

我的不行? 



您的我还没测。

我的电脑快卡死了。。。

你的表[QTKCenter].[dbo].[SpendHistory]的数据量有多大呢。

另外,加上了过滤条件: a.[CardNo]='6212262409000028515' and a.[ExTime] between '2013-3-1' and '2013-3-31'
后大概还剩下多少呢
[解决办法]

我的不行?


您的我还没测。

我的电脑快卡死了。。。

你的表[QTKCenter].[dbo].[SpendHistory]的数据量有多大呢。

另外,加上了过滤条件: a.[CardNo]='6212262409000028515' and a.[ExTime] between '2013-3-1' and '2013-3-31'
后大概还剩下多少呢

不是我数据表大,我在同事的固态硬盘上跑  用2s,我的本本2分41s

哦 ,呵呵,那返回了多少条数据呢

有效数据39条。如果不过滤那些相同的有59条。

那建个索引呢,这样:

create index idx_SpendHistory_cc on SpendHistory(CardNo,ExTime)


然后,在运行下面的语句,看看:

select [CardNo],[CardID],[CardSave],[TollAmount],[ExTime],[ExRoad],[ExStation]
       ,[ExShiftDate],[EnTime],[EnRoad],[EnStation],[ExVehPlate],[VerifyCode]
       ,[DealStatus],[SendTime] 
from
(
select *,
   row_number() over(partition by Extime,ExStantion 
 order by sendTime desc) rownum
from
(
 SELECT [CardNo]
  ,[CardID]
  ,[CardSave]
  ,[TollAmount]
  ,[ExTime]
  ,[ExRoad]
  ,[ExStation]
  ,[ExShiftDate]
  ,[EnTime]
  ,[EnRoad]
  ,[EnStation]
  ,[ExVehPlate]
  ,[VerifyCode]
  ,[DealStatus]
  ,[SendTime]
  FROM [QTKCenter].[dbo].[SpendHistory]
  where [CardNo] ='6212262409000028515' and 
[ExTime] between '2013-3-1' and '2013-3-31'
) t 
)t
where rownum=1

[解决办法]
2008的话没这个说法,2008之前的话,是你说的这样

热点排行