Foxtable(狐表)用户栏目专家坐堂 → SQL查询加索引优化速度


  共有3569人关注过本帖树形打印复制链接

主题:SQL查询加索引优化速度

帅哥哟,离线,有人找我吗?
有点蓝
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107861 积分:548662 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/29 20:25:00 [只看该作者]

se lect * from (Se lect  Row_Number() Over(Order by [_Identify]) As RowNum,*,round(([ResultMoney] - 开piao金额),2) as 未开piao金额,round(([ResultMoney] - 收款金额),2) as 未收款金额 From
 ([dbo].[OrderMain] a left join (se lect Order_ID,round(SUM([TotalTax]),2) as 开piao金额 from [dbo].[InvoDetailed] GROUP BY [Order_ID]) b
  on a._Identify = b.Order_ID) left join (se lect Order_ID,SUM([AmountPay]) as 收款金额 from [dbo].[ReExpend] GROUP BY [Order_ID]) c
  ON a._Identify = c.Order_ID where a.Cl_PurSaleMold = 1) as aaa WHERE Row_Number >= 1 And Row_Number <= 10 
 ORDER BY Order_Date desc

 回到顶部
美女呀,离线,留言给我吧!
漂亮美眉vszh
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:876 积分:7911 威望:0 精华:0 注册:2013/5/30 11:27:00
  发帖心情 Post By:2021/4/30 10:32:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:111.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:222.png
图片点击可在新窗口打开查看

 回到顶部
美女呀,离线,留言给我吧!
漂亮美眉vszh
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:876 积分:7911 威望:0 精华:0 注册:2013/5/30 11:27:00
  发帖心情 Post By:2021/4/30 10:52:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:数据库导出表.rar


 回到顶部
美女呀,离线,留言给我吧!
漂亮美眉vszh
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:876 积分:7911 威望:0 精华:0 注册:2013/5/30 11:27:00
  发帖心情 Post By:2021/4/30 10:53:00 [只看该作者]

数据库导出的表,直接备份数据库,压缩后太大,无法上传

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107861 积分:548662 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/30 11:22:00 [只看该作者]

多了一个括号,自己排版代码检查

se lect * from 
  (
  Se lect  Row_Number() Over(Order by [_Identify]) As RowNum,*,round(([ResultMoney] - 开piao金额),2) As 未开piao金额,round(([ResultMoney] - 收款金额),2) As 未收款金额 
    From [dbo].[OrderMain] as a 
        left join (se lect Order_ID,round(SUM([TotalTax]),2) As 开piao金额 from [dbo].[InvoDetailed] GROUP BY [Order_ID]) As b on a.[_Identify] = b.Order_ID 
        left join (se lect Order_ID,SUM([AmountPay]) As 收款金额 from [dbo].[ReExpend] GROUP BY [Order_ID]) As c ON a.[_Identify] = c.Order_ID 
    where a.Cl_PurSaleMold = 1
  ) As aaa 
  WHERE Row_Number >= 1 And Row_Number <= 10  ORDER BY Order_Date desc

另外_Identify要加上中括号

最后还是提醒一下,尽量不要使用自增主键_Identify做业务关联,以后换服务器做数据迁移,不小心的话可能会撞大彩

 回到顶部
美女呀,离线,留言给我吧!
漂亮美眉vszh
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:876 积分:7911 威望:0 精华:0 注册:2013/5/30 11:27:00
  发帖心情 Post By:2021/4/30 14:27:00 [只看该作者]

老师还是报错,我也找不到原因


图片点击可在新窗口打开查看此主题相关图片如下:333.png
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107861 积分:548662 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/30 14:42:00 [只看该作者]

*号改为指定具体的列

Se lect  Row_Number() Over(Order by [_Identify]) As RowNum,a.列1,a.lie2,b.列3,round(([ResultMoney] - 开piao金额),2) As 未开piao金额,round(([ResultMoney] - 收款金额),2) As 未收款金额 

 回到顶部
总数 17 上一页 1 2