0

アイテムテーブルにレンタル用のアイテムがいくつかあります。アイテム テーブル内の各アイテムのレンタル履歴を示す多国籍テーブルがあります。アイテムが現在レンタルされていない場合、「利用可能状況」列のすべてのエントリは「クローズ」と表示されます。アイテムがレンタルされている場合、「利用可能状況」列のフィールドの 1 つに「ONRENT」と表示されます。各レンタル アイテムを一覧表示し、現在 "ONRENT" (利用不可) か "CLOSED" (利用可能) かを返すクエリを作成したいと考えています。WHERE 句で "ONRENT" を含む行のみを検索できるため、"ONRENT" であるレンタル商品を返すクエリを作成しました。「利用可能状況」列のすべての行が「クローズ」と表示されている場合、利用可能なアイテムを返す方法がわからない

select      rl.[No_],
        rl.[Manufacturer Code],
        rl.[Model Code],
        rl.[Availability Status],
        rl.[Start Date],
        rh.[Order Date],
        rh.[No_],
        rh.[Ship-to Name],
        rh.[Ship-to Address]

from        [LIVE$Rental Line]rl left outer join [LIVE$Rental Header]rh 
on rl.[Document No_] = rh.[No_]
where       rl.[Availability Status] = 'ONRENT'
and         rl.[No_] not like 'SR%'
4

2 に答える 2

0

結合を切り替えるだけで

SELECT
            rl.[No_],
            rl.[Manufacturer Code],
            rl.[Model Code],
            COALESCE(rl.[Availability Status], 'CLOSED') [Availability Status],
            rl.[Start Date],
            rh.[Order Date],
            rh.[No_],
            rh.[Ship-to Name],
            rh.[Ship-to Address]
    FROM
            [LIVE$Rental Header] rh
        LEFT OUTER JOIN
            [LIVE$Rental Line] rl  
                ON
                        rl.[Document No_] = rh.[No_]
                    AND
                        rl.[Availability Status] = 'ONRENT'
    WHERE
            rl.[No_] not like 'SR%';

次に、すべての を取得します。他の条件と同様に、関連する行のデータ[LIVE$Rental Header]のみを取得します。[LIVE$Rental Line]'ONRENT'

于 2014-06-04T14:44:24.273 に答える