SQL 服务器中的 UNION 和 GROUP BY
Posted
技术标签:
【中文标题】SQL 服务器中的 UNION 和 GROUP BY【英文标题】:UNION and GROUP BY in SQL server 【发布时间】:2016-09-16 14:18:00 【问题描述】:我需要帮助才能在 SQL Server 中创建视图。我有这样的事情
SELECT MemberId,
Name,
SUM(TotalSales) as SalesAmount,
CreatedOn
FROM (
(SELECT MAX(0) AS MemberId,
MAX('Others') AS Name,
SUM(TotalSales) AS SalesAmount,
CreatedOn
FROM ... AS A
GROUP BY CreatedOn
)
UNION
(SELECT MemberId,
Name,
SUM(TotalSales) AS SalesAmount,
CreatedOn
FROM ... AS D
GROUP BY MemberId, Name, CreatedOn
)
) AS E
GROUP BY MemberId, Name, CreatedOn
但是当我保存视图时,Microsoft SQL Server 管理显示这个错误:
谁能帮帮我? 提前致谢
【问题讨论】:
我认为视图不允许分组 你能把错误图片直接放在你的问题里,还是把错误文字放在你的问题里? 你能显示完整的查询吗? @SandipPatel 我认为他们会这样做 @hatchet 新用户不能这样做。所以你可以帮他编辑问题。 【参考方案1】:我认为您正在寻找这样的东西:
SELECT MemberId, Name, SUM(SalesAmount) as SalesAmount, CreatedOn
FROM (
SELECT MAX(0) AS MemberId,
MAX('Others') AS Name,
SUM(TotalSales) AS SalesAmount, CreatedOn
FROM
... AS A
GROUP BY CreatedOn
UNION
SELECT MemberId, Name,
SUM(TotalSales) AS SalesAmount, CreatedOn
FROM
... AS D
GROUP BY MemberId, Name, CreatedOn
) AS E
GROUP BY MemberId, Name, CreatedOn
【讨论】:
所以您的意思是简单地从合并的两个选择中删除括号? @hatchet 嗯,我不知道我在想什么……除此之外还有一个小的更正:SUM(TotalSales)
变成了SUM(SalesAmount)
。删除括号不应该有任何区别。
除了TotalSales
上的错误名称之外,查询似乎没问题。 rextester.com/QCFS96639
不知道为什么它是downvote..看起来括号是实际问题以上是关于SQL 服务器中的 UNION 和 GROUP BY的主要内容,如果未能解决你的问题,请参考以下文章
在 sql 查询中使用 group/order by 和 union 子句