2016-12-16 113 views
1

這是我到目前爲止,但我不能讓它正常運行。我不斷收到語法不正確的錯誤ON FROM FROM TBL_AIRPORT AIR。但我無法弄清楚應該在那裏,或者改變什麼,所以我不能運行它。任何幫助,將不勝感激。創建一個存儲過程來返回一個機場列表lat和long

SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 

CREATE PROCEDURE SP_GETAIRPORTS 
    @GEOLOCATION GEOGRAPHY = NULL, 
    @ICAOCODE VARCHAR(10) = NULL, 
    @IATACODE VARCHAR(4) = NULL, 
    @COUNTRY_FK INT = NULL, 
    @STRNAME VARCHAR(MAX) = NULL, 
    @STRCITY VARCHAR(MAX) = NULL, 
    @INT_ELEVATION INT = NULL 
AS 
BEGIN TRANSACTION 
BEGIN TRY 
    SET NOCOUNT ON 
    SET ANSI_WARNINGS OFF 

    SELECT 
     GEOLOCATION.LAT, GEOLOCATION.LONG, ICAOCODE, IATACODE, 
     STRNAME, STRCITY, COUNTRY.COUNTRYNAME, INT_ELEVATION 
    FROM 
     TBL_AIPORT AIR 
    FROM 
     TBL_AIRPORT AIR 
    JOIN 
     TBL_COUNTRY C ON C.COUNTRY_ID = AIR.COUNTRY_FK 
    WHERE 
     GEOLOCATION.LAT <> 0 OR GEOLOCATION.LONG <> 0 
END TRY 
BEGIN CATCH 
    -- ..... 
END CATCH 
+0

那是因爲你有多餘的 'FROM TBL_AIRPORT AIR' –

回答

2

重寫你select條款,因爲你用「TBL_AIRPORT」表兩次相同的關鍵字「FROM」,並還適當編寫開始,提交事務的語法。

SELECT 
    GEOLOCATION.LAT, GEOLOCATION.LONG, ICAOCODE, IATACODE, STRNAME, 
    STRCITY, COUNTRY.COUNTRYNAME, INT_ELEVATION 
FROM 
    TBL_AIRPORT AIR 
JOIN 
    TBL_COUNTRY C ON C.COUNTRY_ID = AIR.COUNTRY_FK 
WHERE 
    GEOLOCATION.LAT <> 0 OR GEOLOCATION.LONG <> 0 
+0

是的!很簡單。這讓我瘋狂。謝謝 – user7299268

+0

它現在不返回geolocation.lat或geolocation.long任何東西。我得到一個錯誤,找不到'Lat'字段的屬性。Microsoft.Sql.serverttype ..... – user7299268

+0

LAT和LONG在哪個表中顯示..? – Mansoor

相關問題