2011-11-05 63 views
-2

小問題不正確的語法與我在這裏查詢:SQL - 附近關鍵字

CREATE VIEW rental_view 
AS 
    SELECT 
     m.movie_id, movie_name, co.copy_id, 
     f.format_id, format_name, cu.customer_id, 
     (first_name + ' ' + surname) AS customer_name, 
     rental_id, rental_date, return_date, 
     ISNULL(return_date, CAST(DATEDIFF(dd, rental_date, GETDATE()) AS rental_duration 
    FROM 
     movie AS m 
    INNER JOIN copy AS co ON m.movie_id = co.movie_id 
    INNER JOIN format AS f ON co.format_id = f.format_id 
    INNER JOIN rental ON co.copy_id = rental.copy_id 
    INNER JOIN customer AS cu ON rental.customer_id = cu.customer_id 

結果錯誤:

Msg 156, Level 15, State 1,
Procedure rental_view, Line 3 Incorrect syntax near the keyword 'FROM'.

我在這一個漫長的嘗試並不能解決它。

欣賞幫助。

回答

5

你就失去了括號在這條線:

AS SELECT 
    m.movie_id, movie_name, co.copy_id, f.format_id, format_name, 
    cu.customer_id, (first_name + ' ' + surname) AS customer_name, 
    rental_id, rental_date, return_date, 
    ISNULL(
     return_date, 
     CAST(DATEDIFF(dd, rental_date, GETDATE()))) AS rental_duration 

反正你的語法是錯誤的其他部分:

  • CAST希望現場轉換,關鍵字AS和新型(請參閱docs
  • DATEDIFF需要兩個參數(請參閱docs)< - 如果您使用的是MySql;與MS-SQL是正確的
+1

應該在哪裏括號是什麼? – Owen

+2

@Owen最後**之後還有兩個**)** –

+1

@Owen:在'GETDATE())'之後'我需要兩個括號;) – Marco

0

試試這個:

CREATE VIEW rental_view 
    AS SELECT m.movie_id, 
movie_name, 
co.copy_id, 
f.format_id, 
format_name, 
cu.customer_id, 
(first_name + ' ' + surname) AS customer_name, 
rental_id, 
rental_date, 
return_date, 
ISNULL(return_date, 
CAST(DATEDIFF(dd, rental_date, GETDATE()) AS *type desired here*)) AS name of column 
    FROM movie as m 
    INNER JOIN copy AS co 
    ON m.movie_id = co.movie_id 
    INNER JOIN format AS f 
    ON co.format_id = f.format_id 
    INNER JOIN rental 
    ON co.copy_id = rental.copy_id 
    INNER JOIN customer AS cu 
    ON rental.customer_id = cu.customer_id 
+0

我想你會把括號放在錯誤的地方。無論如何,我已經給出了答案_「你丟失括號」_;) – Marco

+0

嘗試運行你的腳本,看看有什麼不對:) –

+0

你編輯的帖子仍然是錯誤的:'DATEDIFF'只需要兩個參數;) – Marco

相關問題