Так Это школа вопрос похож на другой, я получил код:SQL сценарии Создание представления вместо производной таблицы
USE AP
SELECT VendorName, FirstInvoiceDate, InvoiceTotal
FROM Invoices JOIN
(SELECT VendorID, MIN(InvoiceDate) AS FirstInvoiceDate
FROM Invoices
GROUP BY VendorID) AS FirstInvoice
ON (Invoices.VendorID = FirstInvoice.VendorID AND
Invoices.InvoiceDate = FirstInvoice.FirstInvoiceDate)
JOIN Vendors
ON Invoices.VendorID = Vendors.VendorID
ORDER BY VendorName, FirstInvoiceDate
мне нужно изменить, чтобы создать представление вместо производной таблицы я был думая что-то больше похоже на
IF NOT EXISTS (SELECT * FROM sys.views
Where name = ‘EarliestInvoiceandTotalVEW’)
CREATE View AS
Select VendorName, FirstInvoiceDate, InvoiceTotal
From Invoices JOIN
(Create VIEW FirstInvoice AS
SELECT VendorID, MIN(InvoiceDate) AS FirstInvoiceDate
From Invoices
Group By VendorID) As FirstInvoice
ON (Invoices.VendorID = FirstInvoice.VendorID AND
Invoices.InvoiceDate = FirstInvoice.FirstInvoiceDate)
JOIN Vendors
ON Invoices.VendorID = Vendors.VendorID
ORDER BY VendorName, FirstInvoiceDate
это позволит сделать вид, чтобы сделать то же самое и проверить, если она существует, так что не воссозданы/определяется каждый раз.
Спасибо за любой вклад!
Я извиняюсь о формате я взял его непосредственно из SQL Server и обычно форматируются хорошо ...
Это то, что я должен работать:
USE AP
Declare @Create1 varchar(8000)
IF EXISTS (SELECT * FROM sys.views Where sys.views.name = 'EarliestInvoiceandTotalVIEW')
drop view EarliestInvoiceandTotalVIEW;
SET @CREATE1 = 'CREATE View EarliestInvoiceTotalVIEW AS
Select VendorName, FirstInvoiceDate, InvoiceTotal
From Invoices JOIN
(SELECT VendorID, MIN(InvoiceDate) AS FirstInvoiceDate
FROM Invoices
GROUP BY VendorID) AS FirstInvoice
ON (Invoices.VendorID = FirstInvoice.VendorID AND
Invoices.InvoiceDate = FirstInvoice.FirstInvoiceDate)
JOIN Vendors
ON Invoices.VendorID = Vendors.VendorID'
Exec (@CREATE1)
Я должен был установить где sys.views.name = ..., а также установить команду exec, чтобы представление представления запускалось «первым».
В чем ваш вопрос? – Andomar
Вторая часть содержит ошибки для меня: Msg 102, Level 15, State 1, Line 4 Неверный синтаксис рядом с '' '. Msg 111, уровень 15, состояние 1, строка 6 «CREATE VIEW» должен быть первым оператором в пакете запросов. Msg 156, Level 15, State 1, Line 9 Неверный синтаксис рядом с ключевым словом «Создать». Msg 111, уровень 15, состояние 1, строка 9 «CREATE VIEW» должен быть первым оператором в пакете запросов. Msg 102, Level 15, State 1, Line 12 Неверный синтаксис рядом с ')'. Хотя я так долго работал над этим, я мог делать что-то неправильно. Это правильно или где я возиться? –
Вы не указали имя представления в 'create', это должно быть' create view [EarliestInvoiceandTotalVEW] как -etc.' –