2016-04-22 6 views
0

SQL-Frage, ich habe eine Ansicht erstellt, aber Probleme kommt aus, wenn Ich versuchte, die Ansicht anzuzeigen mit * aus der Ansicht auswählen.SQL Create View, Zeige Ansicht, Falsche Syntax in der Nähe des Schlüsselwortes 'SELECT'

CREATE VIEW YearByYearSalesDelta as 
WITH temp 
    as (select SalesPersonID,YEAR(DueDate) as SaleYear, SUM(SubTotal) as Total 
     from Sales.SalesOrderHeader 
     group by SalesPersonID, year(DueDate) 
     ) 
    select NewYear.SalesPersonID, 
     OldYear.SaleYear AS OldYear, 
     NewYear.SaleYear as NewYear, 
     NewYear.Total-OldYear.Total as Delta 
    from temp AS OldYear 
     JOIN temp AS NewYear on NewYear.SalesPersonID=OldYear.SalesPersonID 
       AND NewYear.SaleYear-1=OldYear.SaleYear 

SELECT * FROM dbo.YearByYearSalesDelta 

Nachricht zeigt

**Msg 156, Level 15, State 1, Procedure YearYearSalesDelta, Line 15 
Incorrect syntax near the keyword 'SELECT'.** 

Antwort

1

Sie sollten die Batch-Separator GO nach der Ansicht verwenden

CREATE VIEW YearByYearSalesDelta as 
WITH temp 
    as (select SalesPersonID,YEAR(DueDate) as SaleYear, SUM(SubTotal) as Total 
     from Sales.SalesOrderHeader 
     group by SalesPersonID, year(DueDate) 
     ) 
    select NewYear.SalesPersonID, 
     OldYear.SaleYear AS OldYear, 
     NewYear.SaleYear as NewYear, 
     NewYear.Total-OldYear.Total as Delta 
    from temp AS OldYear 
     JOIN temp AS NewYear on NewYear.SalesPersonID=OldYear.SalesPersonID 
       AND NewYear.SaleYear-1=OldYear.SaleYear 

GO 

SELECT * FROM dbo.YearByYearSalesDelta 
+1

Oder richtig Anweisungen beenden mit ';' http://sqlblog.com/blogs/ aaron_bertrand/archive/2012/09/25/16567.aspx –

+0

Vielen Dank. Es klappt –

Verwandte Themen