读书人

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

发布时间: 2013-11-09 17:06:34 作者: rapoo

查询时过滤部分不符合要求的数据
我现在可以查询出某时间段内某张的卡所有流水,我的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之前的话,是你说的这样

读书人网 >SQL Server

热点推荐