求一sql,有点难
mbm 2004-11-04 04:41:07 两个表关联查询求总和的问题
表 BuyRecord,这个表描述用户股票购买记录,按时间排序(每当有用户交易时插入一条记录),HoldNum字段记录用户此次交易后拥有的此股票的数量。
例如:userid=10001的用户截至到2004-11-4 11:35:11拥有股票代码是Z001的股票数目是52,拥有股票代码是Z002的股票数目是8,因为这个用户没有买过Z003,所以没有关于Z03的记录
用户代码 股票代码 交易时间 拥有数量
UserID StockCode DateTime HoldNum
10001 Z001 2004-11-4 10:26:16 3
10001 Z002 2004-11-4 10:28:19 2
10001 Z001 2004-11-4 11:29:10 52
10002 Z002 2004-11-4 11:30:11 91
10001 Z002 2004-11-4 11:32:12 8
10002 Z003 2004-11-4 12:33:15 9
10003 Z002 2004-11-3 12:35:12
表StockCurrentValue,这个表记录股票每天价格的当前值,(11-3号的CurrentValue已经作废但表里要保留这条记录)
例如今天是4号,则目前Z001股票的当前价格是28.3433,Z002是48.3433,Z003是32.2346
股票代码 日期 当前价格
StockCode DateTime CurrentValue
Z001 2004-11-3 25.3456
Z001 2004-11-4 28.3433
Z002 2004-11-3 38.2343
Z002 2004-11-4 48.3433
Z003 2004-11-3 23.3433
Z003 2004-11-4 32.2346
查询目的:求UserID='10001'的用户当前拥有的所有股票的总价格。
也就是 52*28.3433+91*48.3433
这个sql语句如何写查询效率最高?