2017-07-27 7 views
-1

Iている以下の表SQL - グループ化された結果の中にユニークな値を探す

**Order** 
- Id (int) 
- OrderDate (datetime) 
- OrderNumber (nvarchar) 
- CustomerId (int) 
- TotalAmount (decimal) 

 

**OrderItem** 
- Id (int) 
- OrderId (int) 
- ProductId (int) 
- UnitPrice (decimal) 
- Quantity (int) 

 

**Product** 
- Id (int) 
- ProductName (nvarchar) 
- SupplierId (int) 
- UnitPrice (decimal) 
- Package (nvarchar) 
- IsDiscontinued (bit) 

 

**Supplier** 
- Id (int) 
- CompanyName (nvarchar) 
- ContactName (nvarchar) 
- ContactTitle (nvarchar) 
- City (nvarchar) 
- Country (nvarchar) 
- Phone (nvarchar) 
- Fax (nvarchar) 

私は単一の国から供給される製品を含むすべての注文を調べる必要があります。どんな助けもありがたい。

+0

はあなたがsqlfiddle –

+1

してください** [EDIT] **あなたの質問を行い、そのデータに基づいていくつかのサンプルデータと予想される出力を追加してくださいすることができます助けるかもしれない、このいずれかを試してみてください。 [**フォーマットされたテキスト**](http://stackoverflow.com/help/formatting)、** **スクリーンショットはありません**(http://meta.stackoverflow.com/questions/285551/why-may -i-not-upload-images-of-code-on-so-asking-a-question/285557#285557)。 ** [編集] **あなたの質問 - コメントを投稿するコードや追加情報はありません**。 –

+1

どの[DBMS](https://en.wikipedia.org/wiki/DBMS)を使用していますか? Postgres?オラクル? –

答えて

0

それは

select * from (
     select * from (
      select ROW_NUMBER() over(partition by s.Country order by s.Country) RowNo,o.* from [order] as o 
      inner join OrderItem as oi on o.Id = oi.OrderId 
      inner join Product as p on ProductId = p.Id 
      inner join Supplier as s on p.SupplierId = s.Id 
     ) as t 
     where RowNo > 1 
    ) as t 
    right join [order] as o on t.Id = o.Id 
    where t.Id is null 
関連する問題