join
. का उपयोग करने के बारे में कैसे ? निम्नलिखित सभी जोड़े अलग-अलग दिखाता है:
select tb.*, ts.*
from company tb join
company ts
on tb.company_name = ts.company_name and
ts.address_type = 'shipping' and
tb.address_type = 'billing' and
ts.address <> tb.address;
अगर आप सिर्फ अलग कंपनियों को चाहते हैं:
select company_name
from company t
group by company_name
having count(distinct case when t.address_type = 'billing' then address end) = 1 and
count(distinct case when t.address_type = 'shipping' then address end) = 1 and
(max(case when t.address_type = 'billing' then address end) <>
max(case when t.address_type = 'shipping' then address end)
);
नोट:यह यह भी जांचता है कि केवल एक अलग बिलिंग और शिपिंग पता है।