我正在尝试创建以下视图,查询运行查找,直到我尝试创建一个视图,然后我收到一个错误,指出:创建视图或函数失败,因为没有为列1指定列名,研究我发现没有真正帮助,因为它通常是一个简单的查询错误,但我的目前运行正常.任何见解?
CREATE VIEW dbo.prov_prod_rv AS
WITH rep_prods AS (SELECT t.amount, t.provider_id, t.clinic, p.period_start, t.impacts,
p.period_end, p.period_id, p.fiscal_year, p.date_man
FROM dbo.transactions AS t
CROSS JOIN dbo.period AS p
WHERE (t.date_entered BETWEEN p.period_start AND p.period_end))
SELECT SUM(r.amount), r.provider_id, d.first_name, d.last_name, d.position_id, d.clinic, r.period_id, r.fiscal_year, r.date_man
FROM rep_prods AS r INNER JOIN
dbo.provider AS d ON r.provider_id = d.provider_id AND r.clinic = d.clinic
WHERE (r.impacts = 'P') AND (r.amount <> 0)
GROUP BY r.provider_id, d.first_name, d.last_name, d.position_id, d.clinic, r.period_id, r.fiscal_year, r.date_man
Run Code Online (Sandbox Code Playgroud)
问题出在你的决赛中SELECT:
SELECT SUM(r.amount),
r.provider_id,
d.first_name,
d.last_name,
d.position_id,
d.clinic,
r.period_id,
r.fiscal_year,
r.date_man
Run Code Online (Sandbox Code Playgroud)
您需要为列指定列名SUM(r.amount):
SELECT SUM(r.amount) As TotalAmount,
r.provider_id,
d.first_name,
d.last_name,
d.position_id,
d.clinic,
r.period_id,
r.fiscal_year,
r.date_man
Run Code Online (Sandbox Code Playgroud)