sql语句优化

jxf_yx 2010-03-12 02:41:04
下面的sql语句是否可以优化?

SELECT Sum([TradeNum]), Sum([Payment]), [TradeTime],
(select sum([Payment]) from [Order] as o where [TradeStatus] =2 and o.ID=[Order].ID) as NoPayment
FROM [Order]
GROUP BY date(tradetime)
...全文
75 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bancxc 2010-03-12
  • 打赏
  • 举报
回复
77的也行
bancxc 2010-03-12
  • 打赏
  • 举报
回复
最好别用子查询 试试6楼的 联查
bancxc 2010-03-12
  • 打赏
  • 举报
回复
--试试这个效果一样吗  id是不是唯一的
SELECT Sum([TradeNum]), Sum([Payment]), date([TradeTime]),
sum(o.[Payment]) as NoPayment
FROM [Order]
left join Order o on o.[TradeStatus] =2 and o.ID=[Order].ID
GROUP BY date(order.tradetime)
SQL77 2010-03-12
  • 打赏
  • 举报
回复
SELECT Sum([TradeNum]), Sum([Payment]), [TradeTime],O.NoPayment

FROM [Order] O,
(select ID,sum([Payment])NoPayment from [Order] as o where [TradeStatus] =2 GROUP BY ID) T WHERE O.ID=T.ID
GROUP BY DATEPART(DD,tradetime) ,O.NoPayment
SQL77 2010-03-12
  • 打赏
  • 举报
回复
SELECT Sum([TradeNum]), Sum([Payment]), [TradeTime],O.NoPayment

FROM [Order] O,
(select ID,sum([Payment])NoPayment from [Order] as o where [TradeStatus] =2 GROUP BY ID) T WHERE O.ID=T.ID
GROUP BY date(tradetime)
--小F-- 2010-03-12
  • 打赏
  • 举报
回复
语句已经够简单了
现在可以做的是在连接字段加索引
还有group by 后面的字段也可以
需要注意的是 加索引的字段不要用函数
否则会导致索引失效
playwarcraft 2010-03-12
  • 打赏
  • 举报
回复

--SQL 没这种写法吧
date(tradetime)

bancxc 2010-03-12
  • 打赏
  • 举报
回复
[TradeStatus] =2 and o.ID=[Order].ID ,tradetime加索引

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧