2016-12-16 10 views
1

これまでのことはここにありますが、正しく実行することはできません。私は文法が間違っているところからエラーが出てくるのですが、それはFROM TBL_AIRPORT AIRとなります。しかし、私はそこにいるはずのもの、または何を変えるべきかを理解できないので、私はそれを動かすことができません。どんな助けもありがとう。あなたが「FROM」同じキーワードで二回「TBL_AIRPORT」テーブルを使用しても、適切に取引の構文を開始し、コミット書くため緯度および経度の空港のリストを返すためのストアドプロシージャを作成する

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句を書き換え

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

ありがとうございます.Goolocation.latまたはgeolocation.longを何も返さないようにしました。私はエラーが発生し、 '緯度' Microsoft.Sql.serverttypeのフィールドのプロパティを見つけることができませんでした..... – user7299268

+0

LATとLONGはどのテーブルに表示されていますか? – Mansoor

関連する問題