3

私はこのようなテーブルを持っています:

Item    ProviderId

Item1   1

Item1   2

Item2   1

Item3   1

新しいテーブルを手に入れたいです。新しいテーブルでitemは、少なくとも2つProviderIdの異なるが存在するがのみリストされます。

したがって、上記の例では、item12つの異なるものしかないため、次のProviderIdようなテーブルを取得したいと思います。

Item

Item1

これを行うためのステートメントをどのように書くことができますか?

4

3 に答える 3

3

あなたは使用する必要がgroup byありhavingます:

select item
from table
group by item
having count(distinct ProviderId)>=2

またはなしdistinct

select item
from tab
group by item, ProviderId
having count(1)>=2;

SQLフィドルデモ

テーブルとしてのクエリの場合:

select item
from (select item, ptoviderId from tabA) as tab
group by item, ProviderId
having count(1)>=2;

新しいテーブルを作成する場合は、次を使用できますinto

select item
into newTable
from table
-- or (select item, ptoviderId from tabA)
group by item
having count(distinct ProviderId)>=2
于 2012-10-24T10:09:44.850 に答える
2

これを試して:

 SELECT [Item]      
      FROM [TABLE_NAME]
      GROUP BY [Item]
      HAVING COUNT(DISTINCT ProviderId) >1
    GO
于 2012-10-24T10:25:31.320 に答える
1
INSERT INTO <your new table> (newTableItem)
    (SELECT Item
    FROM <table>
    GROUP BY Item
    HAVING COUNT(DISTINCT ProviderId) > 1)-- or just HAVING COUNT(*) > 1 if one Item can't have two times the same ProviderId
于 2012-10-24T10:09:56.810 に答える