我需要知道在一个VIEW中组合多个SELECT语句的方法吗?我尝试了UNION ALL,但由于我使用了唯一的列来聚合GRAND TOTAL,所以它失败了 我是学生,这是小组项目的一部分。
我有一个包含4列的表:account,description,short_description和balance。 COA(会计科目表)是导入的Excel电子表格。
CREATE VIEW [account_balance_sums]
AS
SELECT SUM(balance) AS total,
SUBSTRING (Account,0,2) AS account_group
FROM COA
GROUP BY account_group
GO
SELECT * FROM [account_balance_sums]
SELECT SUM(total) AS Grand_total
FROM [account_balance_sums]
答案 0 :(得分:2)
假设您尝试创建一个视图,为所有帐户中的总计提供一个额外行的帐户组和总余额,那么此视图应有所帮助:
CREATE VIEW [account_balance_sums] AS
SELECT SUM(balance) AS total, SUBSTRING (Account,0,2) AS account_group
FROM COA
GROUP BY account_group
UNION ALL
SELECT SUM(balance), 'Grand Total'
FROM account_group
顺便说一下,帐户名的第一个字符的子字符串表示您在一列中有多个数据。这表示未正确规范化的数据,如果需要最高分,则应该解决这个问题。请参阅普通表单上的wikipedia
答案 1 :(得分:1)
在UNION'd声明中,必须有:
使用:
SELECT *
FROM [account_balance_sums]
UNION ALL
SELECT SUM(total),
NULL AS account_group
FROM [account_balance_sums]
答案 2 :(得分:0)
UNION ALL应该有效。像这样的基本结构
select a,b,c,d
from t1
union all
select a,b,c,e
from t2
只要d和e是相同的数据类型。
做总和,然后用聚合层包装它 - 使用这个结构作为内联视图(以及其他方法)
类似的东西:
select sum( d )
from (
select a,b,c,d
from t1
union all
select a,b,c,e
from t2
)