日期:2014-05-17 浏览次数:20504 次
SELECT @avg_money = (SELECT SUM(金额)/ (DATEDIFF(m, MIN(时间), MAX(时间)) + 1) FROM BuyInformation WHERE 用户编号 = @i) SELECT TOP 1 u.用户姓名, u.用户地址, buy.时间, @avg_money 月均消费额 FROM UserInfo u join BuyInformation buy ON u.用户编号 = buy.用户编号 WHERE u.用户编号 = @i ORDER BY buy.时间 DESC
SELECT TOP 1 u.用户姓名 , u.用户地址 , buy.时间 , SUM(金额) / ( DATEDIFF(m, MIN(时间), MAX(时间)) + 1 ) 月均消费额 FROM UserInfo u JOIN BuyInformation buy ON u.用户编号 = buy.用户编号 WHERE u.用户编号 = @i ORDER BY u.用户姓名 , u.用户地址 , buy.时间 DESC
------解决方案--------------------
改成一个语句即可,至于优化,语句本身没有什么优化空间了
剩下的就是两点
1。join的字段类型 一级where 条件数据类型是否一致
2.表中主键和索引是否有缺失