导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

请帮忙优化一个查询:关于主从表的一个查询语句,不想group by一堆字段

phommy 2006-01-23 08:58:34
如下,我为了从子表中取一个sum(金额),group by 了一堆字段,请问有没有别的写法~


SELECT a.ID, a.合同日期, a.原合同号, a.供应商, SUM(采购合同sub.金额) AS 金额,
a.所属工程, a.合同类型, a.到货地址, a.制单, a.审核人1, a.审核人2, a.关闭,
a.备注
FROM 采购合同 a INNER JOIN
采购合同sub ON a.ID = 采购合同sub.ID
GROUP BY a.ID, a.合同日期, a.原合同号, a.供应商, a.所属工程, a.合同类型, a.到货地址,
a.制单, a.审核人1, a.审核人2, a.关闭, a.备注
ORDER BY a.ID
...全文
76 点赞 收藏 3
写回复
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
小辉 2006-01-23
表名写错了

SELECT a.ID, SUM(b.金额) AS 金额 ,c.合同日期, c.原合同号, c.供应商,
c.所属工程, c.合同类型, c.到货地址, c.制单, c.审核人1, c.审核人2, c.关闭,
c.备注
FROM 采购合同 a ,采购合同sub b
LEFT OUTER JOIN 采购合同sub c ON a.ID = c.ID
WHERE a.ID = b.ID
GROUP BY a.ID
回复
小辉 2006-01-23
SELECT a.ID, SUM(b.金额) AS 金额 ,c.合同日期, c.原合同号, c.供应商,
c.所属工程, c.合同类型, c.到货地址, c.制单, c.审核人1, c.审核人2, c.关闭,
c.备注
FROM 采购合同 a ,采购合同sub b
LEFT OUTER JOIN 采购合同 c on c.id=a.id
WHERE a.ID = b.ID
GROUP BY a.ID
回复
wangdehao 2006-01-23
---先将从表group by再连接
a.ID, a.合同日期, a.原合同号, a.供应商, b.金额,
a.所属工程, a.合同类型, a.到货地址, a.制单, a.审核人1, a.审核人2, a.关闭,
a.备注
FROM 采购合同 a INNER JOIN
(select Id,金额=sum(金额) from 采购合同sub group by id) b ON a.ID = b.ID
ORDER BY a.ID
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告