0

SQL クエリに関する質問があります。

クライアントの名、姓、携帯電話番号を含むテーブルがあります。

Thor   Prestby   98726364
Thor   Prestby   98726364
Lars   Testrud   12938485
Lise   Robol     12938485

名前が異なる同じ携帯番号の行を検索したい。上記のように、Thor には 2 つの行があり、その通りです。Lars と Lise は同じ携帯電話番号を持っているので、それを探しています。

4

6 に答える 6

1

ここでは MS SQL Server を使用していると仮定していますが、以下を使用できます。

Declare @t table
(
FirstName varchar(100),
LastName varchar(100),
Mobile bigint
)

Insert Into @t
values ('Thor','Prestby',98726364),
        ('Thor','Prestby',   98726364),
        ('Lars','Testrud',12938485),
        ('Lise','Robol', 12938485),
        ('AN','Other', 12345868)

Select Mobile
From @t
Group By Mobile
Having Count(*) > 1

EXCEPT

Select Mobile
From @t
Group By FirstName, LastName, Mobile
Having Count(*) > 1
于 2013-10-09T07:05:56.817 に答える
0
SELECT t1.phone, count(t1.phone) CountNo
FROM (SELECT distinct * FROM YourTable) t1
Left Outer Join YourTable t2 ON t1.phone = t2.phone AND ( t1.FirstName <> t2.FirstName OR  t1.LastName <> t2.LastName)
WHERE t2.FirstName IS NOT NULL
GROUP BY t1.phone
HAVING count(t1.phone) > 1
ORDER BY CountNo desc
于 2013-10-09T08:48:43.283 に答える
0

結果を得るために、標準の SQL 構文と結合を使用しています

設定:

create table dummy
(
firstname varchar2(20),
lastname varchar2(20),
phone number
);

insert into dummy values('Thor','Prestby',98726364);
insert into dummy values('Thor','Prestby',98726364);
insert into dummy values('Lars','Testrud',12938485);
insert into dummy values('Lise','Robol',12938485);

クエリ:

select a.firstname,a.lastname,a.phone from dummy a inner join dummy b 
on a.phone=b.phone and a.firstname != b.firstname and a.lastname != b.lastname;

結果

FIRSTNAME            LASTNAME             PHONE                  
-------------------- -------------------- ---------------------- 
Lise                 Robol                12938485               
Lars                 Testrud              12938485  
于 2013-10-09T08:50:04.373 に答える
0
SELECT * FROM the_table tt
WHERE EXISTS (
  SELECT * FROM the_table xx
  WHERE xx.mobineno = tt.mobileno
  AND (xx.fname <> tt.fname OR xx.lname <> tt.lname)
  );
于 2013-10-09T08:25:23.317 に答える