0
這是我嘗試在我的數據庫上運行的查詢,但是我發現下面這3個錯誤仍然發生。數據庫中已經有一個名爲'STUD1'的對象
CREATE VIEW STUD1
AS
SELECT
*,
RN = ROW_NUMBER() OVER (PARTITION BY R.ContractID
ORDER BY CONVERT(DATE, LEFT(EVAL_PERIOD , charindex('-', EVAL_PERIOD) - 1), 103) DESC)
FROM
SCMD3.DBO.CPE R;
GO
CREATE VIEW STUD2
AS
SELECT
C.ContractID,
GRED1 = MAX(CASE WHEN RN = 2 THEN ALL_GRADE END),
MARK1 = MAX(CASE WHEN RN = 2 THEN ALL_SCORE END),
GRED2 = MAX(CASE WHEN RN = 1 THEN ALL_GRADE END),
MARK2 = MAX(CASE WHEN RN = 1 THEN ALL_SCORE END)
FROM
STUD1 C
GROUP BY
C.ContractID;
GO
SELECT
s.ContractTitle, x.GRED1, x.MARK1, x.GRED2, x.MARK2
FROM
STUD2 x
INNER JOIN
SCMD3.DBO.CONTRACTMASTER s ON x.ContractID = s.ID;
我得到的錯誤:
消息2714,級別16,狀態3,過程STUD1,2號線
已經有一個在數據庫中名爲 'STUD1' 的對象。消息2714,級別16,狀態3,過程STUD2,第9行
數據庫中已有一個名爲'STUD2'的對象。Msg 537,Level 16,State 2,Line 20
傳遞給LEFT或SUBSTRING函數的長度參數無效。
我已經嘗試了一些解決方案,但仍未能執行。幫助將不勝感激。
前兩個錯誤是說視圖已經在數據庫中。第三個參數表示無效參數,也許EVAL_PRIOD不是varvhar(字符串)類型 – FLICKER
如果繼續執行整個腳本,它將嘗試每次創建視圖。如果這些CREATE VIEW語句已經成功,那麼再次運行它們會產生你正在獲得的錯誤。 – siride
@FLICKER我不斷更改視圖名稱,但仍然有相同的錯誤..和EVAL_PERIOD的數據類型是varchar(250) – Fiq