【问题标题】:SQL Create View ,Show view,Incorrect syntax near the keyword 'SELECT'SQL 创建视图,显示视图,关键字“SELECT”附近的语法不正确
【发布时间】:2023-03-08 06:55:01
【问题描述】:

sql问题,我创建了一个视图,但是问题来自于什么时候 我尝试使用从视图中选择 * 来显示视图。

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

消息显示

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

【问题讨论】:

    标签: sql sql-server select view


    【解决方案1】:

    你应该在视图之后使用批处理分隔符 GO

    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
    

    【讨论】:

    猜你喜欢
    • 2013-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-02
    • 2016-08-23
    相关资源
    最近更新 更多