下面查询该如何优化?
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.用户编号 = @iORDER 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.表中主键和索引是否有缺失