1

このクエリを変更しようとしています。このクエリでは「Not In」を使用したくありません。このクエリを左結合クエリに変更する方法を教えてもらえますか?

SELECT t.date,t.ticket,t.weight,t.Count, td.description
FROM tblticket t inner join tblticketdetails td on t.ticket = td.ticket
WHERE t.ticket NOT IN (SELECT r.Original_ticket from tblRenew R where isnull(r.new_ticket,'') = '' and r.transaction_status = 'valid') 
AND RTRIM(LTRIM(t.status)) = 'OPEN'
AND td.Type = 62
AND t.weight/t.Count >= 1000
AND t.date BETWEEN '2011-12-31' AND '2013-01-17'
4

2 に答える 2

1

チケットのtblRenewに複数のレコードがない場合:

select
  t.date, t.ticket, t.weight, t.Count, td.description
from
  tblticket t
  inner join tblticketdetails td on t.ticket = td.ticket
  left join tblRenew R on isnull(r.new_ticket,'') = '' and r.transaction_status = 'valid' and r.Original_ticket = t.ticket
where
  r.Original_ticket is not null
  and RTRIM(LTRIM(t.status)) = 'OPEN'
  and td.Type = 62
  and t.weight/t.Count >= 1000
  and t.date BETWEEN '2011-12-31' AND '2013-01-17'
于 2013-01-18T03:13:03.027 に答える
1
SELECT t.date,  t.ticket,t.weight, t.Count, td.description
FROM tblticket t inner join 
     tblticketdetails td
     on t.ticket = td.ticket left outer join
     (SELECT r.Original_ticket
      from tblRenew R
      where isnull(r.new_ticket,'') = '' and
      r.transaction_status = 'valid'
     ) v
     on t.ticket = v.Original_ticket
WHERE t.ticket NOT IN (SELECT r.Original_ticket from tblRenew R where isnull(r.new_ticket,'') = '' and r.transaction_status = 'valid') 
AND RTRIM(LTRIM(t.status)) = 'OPEN'
AND td.Type = 62
AND t.weight/t.Count >= 1000
AND t.date BETWEEN '2011-12-31' AND '2013-01-17'
and v.original_tiket is null
于 2013-01-18T03:25:15.253 に答える