0

「ドメイン」というテーブルが 1 つあります。列 A (ドメイン名) には、さまざまなドメイン名のリストが含まれています。列 B (ステータス) には「ステータス」が含まれます。ステータスは、アクティブ、終了、ブロック、キャンセルのいずれかです。ドメイン名は、列 A に複数回リストすることができ、ステータスの種類は 1 つだけに限定されません。ドメインが列 A に複数回リストされ、その各インスタンスのステータスが Cancelled である場合、そのドメインのすべての出現が結果に表示されることに注意してください。

ステータスが「のみ」キャンセルされているすべてのドメインのリストを取得したいと考えています。ステータスをキャンセルしたり、別のタイプのステータスを取得したりすることはできません。以下の例では、domain5.com のみを返す必要があります。

ドメイン名

Domain1.com
Domain2.com
Domain1.com
Domain4.com
Domain5.com

状態

アクティブ
終了
キャンセル
済み ブロック済み
キャンセル済み

どうもありがとう!

4

4 に答える 4

0

これを試して :

select * from domains d 
where d.status = 'cancelled' and 
( select count(*) from domains where domainnames = d.domainesnames) = 1 ;

これは、のcount equals to 1行が1つしかないことを意味しd.domainnames、つまり、選択クエリの現在の行です。

于 2012-07-03T06:06:33.453 に答える
0

句を使用してnot exists、別のステータスの同じドメインの行がないことを要求できます。

select  *
from    Domains d1
where   status = 'cancelled'
        and not exists
        (
        select  *
        from    Domains d2
        where   d1.domainname = d2.domainname
                and d2.status <> 'cancelled'
        )
于 2012-07-03T05:54:08.830 に答える
0

次の SQL クエリを試してください。

select Domainnames  from Domains 
            where Status ='cancelled' AND
            Domainnames  NOT IN (SELECT Domainnames  from Domains where Status <> 'cancelled')
于 2012-07-03T06:03:26.123 に答える
0
SELECT DISTINCT  domainname FROM DomainsTable
WHERE 
Status = 'Canceled'
于 2012-07-03T05:53:02.293 に答える