急!!!奇怪的数据检索问题,请各位大侠帮忙看看……
很奇怪的问题,麻烦仔细看看小弟遇到的现象:
Sql Server2000 中有两中表,结构如下:
表A:(40个字段,类型均为varchar,当前数据1万条左右)
TheID Company TheDate Ship ……
HH00001 XXXX 2003-01-01 YYYYY ……
……
HH09901 DDDD 2006-12-30 UUUUU ……
HH09902 TTTT 2007-01-02 RRRRR ……
……
表B:(15个字段,TheFeeW类型为float,其他类型均为varchar,当前数据5万条左右)
TheID TheFee Currency FeeIO ……
HH00001 1000 RMB 收 ……
HH00001 500 RMB 收 ……
HH00001 800 USD 收 ……
HH00001 700 RMB 付 ……
HH00001 600 USD 付 ……
HH00001 100 USD 付 ……
……
现在需要得到如下的统计数据:
TheID Company InRMB OutRMB InUSD OutUSD ……
HH00001 XXXX 1500 700 800 700
……
小弟的SQL语句是这样写的:
select *,
(select Sum(AllFee) from B where TheID = A.TheID and FeeIO = '收 ' and Currency = 'RMB ') AS InRMB,
(select Sum(AllFee) from B where TheID = A.TheID and FeeIO = '付 ' and Currency = 'RMB ') AS OutRMB,
(select Sum(AllFee) from B where TheID = A.TheID and FeeIO = '收 ' and Currency = 'USD ') AS InUSD,
(select Sum(AllFee) from B where TheID = A.TheID and FeeIO = '付 ' and Currency = 'USD ') AS OutUSD,
From A
执行该语句的时候,大约5秒的时间就可以完成。但如果要对2007年的数据进行统计(A中100多条记录),即加一个条件where A.TheDate &