2015-04-20 2 views
-1

Я хочу создать представление, которое будет создавать список, который может использоваться для генерации ежемесячных счетов, поэтому я могу создать отчет из него. В этом представлении я хочу указать имя работодателя, имя контактного лица работодателя (первый и последний конкатенированные), идентификатор и описание плана, количество сотрудников в этом плане, стоимость плана и сумму выставления счета (стоимость счета * плана) с представлением заказанных по имени работодателя и PlanID. До сих пор это то, что у меня есть:Как присоединиться к представлению с выражением select в sql

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

Для этого нет необходимости. Просто поместите таблицу «работодатели» в предложение 'from'. –

+0

Я забыл упомянуть, но я должен создать представление и использовать его позже, чтобы создать отчет из представления. Это домашнее задание, и это то, что требуется, если это что-то изменит @GordonLinoff – aoora

ответ

0

Вы не можете создать VIEW и использовать его в той же транзакции.

Если это SSMS, введите GO между сообщениями CREATE и SELECT.

Если это приложение, запустите сценарии отдельно.

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 
Смежные вопросы