我想创建一个View,它将生成一个可用于生成月度账单的列表,以便我可以创建一个报告。在这个视图中,我想要雇主姓名,雇主联系人姓名(第一个和最后一个联系人),计划ID和描述,该计划中的雇员数,计划成本和计费金额(计数*计划成本)与视图按雇主姓名和PlanID排序。到目前为止,这就是我所拥有的:
CREATE VIEW VIEW15 AS (SELECT EMPLNAME, EMPLCONTACTFIRSTNAME, EMPLCONTACTLASTNAME
FROM EMPLOYERS);
SELECT PLANS.PLANID, PLNDESCRIPTION, COUNT(PLANS.CARRIER_ID), PLNCOST, (COUNT(PLANS.CARRIER_ID) * PLNCOST)
FROM PLANS, LEWISVIEW15
WHERE PLANS.PLANID = view15.planid
GROUP BY PLANS.PLANID, PLNDESCRIPTION;
我得到的当前错误是VIEW15无效的标识符。 它没有运行,我希望在正确的方向上有一些指导来实现这一目标。
答案 0 :(得分:0)
您无法创建VIEW
并在同一交易中使用它。
如果这是SSMS
,请在GO
和CREATE
语句之间添加SELECT
。
如果这是在应用程序中,请单独运行脚本。
答案 1 :(得分:0)
将这两个语句与批处理分隔符GO
分开,它应该可以正常工作。
如果您的选择查询不在任何聚合函数中,但是任何一个或多个列在该选择中都应用了聚合函数,那么您的选择查询必须包含group by子句中的所有列。
CREATE VIEW VIEW15
AS
SELECT EMPLNAME, EMPLCONTACTFIRSTNAME, EMPLCONTACTLASTNAME
FROM EMPLOYERS;
GO
SELECT PLANS.PLANID
, PLNDESCRIPTION
, COUNT(PLANS.CARRIER_ID)
, PLNCOST
, COUNT(PLANS.CARRIER_ID) * PLNCOST
FROM PLANS
INNER JOIN LEWISVIEW15 ON PLANS.PLANID = view15.planid
GROUP BY PLANS.PLANID
, PLNDESCRIPTION
, PLNCOST
GO