-1

質問があります:

SELECT  

    Segment_ID = Segment_ID.Segment_ID,
    Sprav_093.Name as Road_Wear

FROM dbo.Road
LEFT JOIN Segment_ID  ON Road.Road_ID = Segment_ID.Road_ID
LEFT JOIN Driveway_Pavement ON Segment_ID.Segment_ID = Driveway_Pavement.Segment_ID
LEFT JOIN Sprav_093 ON Driveway_Pavement.Kod_Spr093 = Sprav_093.Kod_Spr

正常に動作します。Segment_IDテーブルには同じ行がいくつかありますDriveway_Pavement。だから私はこの行の最初だけを取得したい。どうすればできますか?

4

3 に答える 3

0

これはうまくいくはずです:

SELECT  

    Segment_ID = Segment_ID.Segment_ID,
    Sprav_093.Name as Road_Wear

FROM dbo.Road
OUTER APPLY (
    SELECT TOP 1 Segment_ID.Segment_ID
    FROM Segment_ID
    WHERE Segment_ID.Road_ID = Road.Road_ID
) Segment_ID  
LEFT JOIN Driveway_Pavement ON Segment_ID.Segment_ID = Driveway_Pavement.Segment_ID
LEFT JOIN Sprav_093 ON Driveway_Pavement.Kod_Spr093 = Sprav_093.Kod_Spr

特定の「最初の」行が必要な場合はORDER BY、 のSELECT内部に を追加できます。OUTER APPLY

于 2013-02-14T18:44:45.220 に答える