0

私のこのクエリは、shipwynum 151513 の resale テーブルから 6 つのレコードを取得します: -

 select re.recdat,
        re.resaleid,
        IF (re.benownsal != '', owsal.ownshortnam, if ((re.grptypsal != '' &&
         re.bogrpidsal != ''), if (bosal.bogrpshort != '', bosal.bogrpshort,
          bosal.bogrpnam), cou1.nation)) as seller,
        IF (re.benownpur != '', owpur.ownshortnam, if ((re.grptyppur != '' &&
         re.bogrpidpur != ''), if (bopur.bogrpshort != '', bopur.bogrpshort,
          bopur.bogrpnam), cou.nation)) as buyer,
        re.benownpur,
        re.grptyppur,
        re.bogrpidpur,
        re.statuscod,
        re.showinob,
        re.benownsal,
        re.grptypsal,
        re.bogrpidsal
 from resale as re
      left join owner as owpur on owpur.ownwynum = re.benownpur
      left join owner as owsal on owsal.ownwynum = re.benownsal
      left join bogroup as bopur on bopur.bogrpid = re.bogrpidpur
      left join bogroup as bosal on bosal.bogrpid = re.bogrpidsal
      left join country as cou on cou.coucod = re.buynation
      left join country as cou1 on cou1.coucod = re.selnation
 where re.shipwynum = '151513' and
       re.deleted = 'N' 
 order by re.saltyp desc,
          re.recdat

ここでは、shipwnum 15153 の上記のクエリから取得したサンプル データのスクリーン ショットを追加しました。

ここに画像の説明を入力 limit 句LIMIT 1を追加すると、期待した最初の 1 つのレコードが取得されます。しかし、shipwynum = 151513 を持つ 1 つの船のみです。すべての船について最初に 1 つのレコードを取得したいと考えています。

すべての船についてそのような記録を取得するために私が行う変更.

どんな助けでも大歓迎です。

ありがとう。

4

2 に答える 2

0

クエリを内部クエリとして使用し、外部でグループ化できます。次のようにクエリを試してください:

select abc.recdat, abc.resaleid, abc.seller, abc.buyer,abc.benownpur,
abc.grptyppur, abc.bogrpidpur, abc.statuscod, abc.showinob, abc.benownsal, abc.grptypsal, abc.bogrpidsal

  from ( select re.recdat,
        re.resaleid,
        IF (re.benownsal != '', owsal.ownshortnam, if ((re.grptypsal != '' &&
         re.bogrpidsal != ''), if (bosal.bogrpshort != '', bosal.bogrpshort,
          bosal.bogrpnam), cou1.nation)) as seller,
        IF (re.benownpur != '', owpur.ownshortnam, if ((re.grptyppur != '' &&
         re.bogrpidpur != ''), if (bopur.bogrpshort != '', bopur.bogrpshort,
          bopur.bogrpnam), cou.nation)) as buyer,
        re.benownpur,
        re.grptyppur,
        re.bogrpidpur,
        re.statuscod,
        re.showinob,
        re.benownsal,
        re.grptypsal,
        re.bogrpidsal,
        re.shipwynum
 from resale as re
      left join owner as owpur on owpur.ownwynum = re.benownpur
      left join owner as owsal on owsal.ownwynum = re.benownsal
      left join bogroup as bopur on bopur.bogrpid = re.bogrpidpur
      left join bogroup as bosal on bosal.bogrpid = re.bogrpidsal
      left join country as cou on cou.coucod = re.buynation
      left join country as cou1 on cou1.coucod = re.selnation
 where re.shipwynum = '151513' and
       re.deleted = 'N' 
 order by re.saltyp desc,
          re.recdat)abc group by abc.shipwynum 
于 2013-04-15T11:24:25.663 に答える