2017-06-13 12 views
0

プロジェクトより:私は2つのテーブル、ProductsCategoriesを持っているクラシックASPのVBScript/SQL Server 2012のSQL Serverの選択数> 1つの

は私がMORE THAN ONE製品を持っているONLYカテゴリを返しますSQLクエリを構築したいです。

2つのテーブル間の共通キーは、Category_idの列です(ProductsテーブルとCategoriesテーブルに存在します)。

+1

あなたは 'having'をお探しですか? '...カウント(カテゴリー)> 1'ですか? –

+0

これまでに試したことをお送りください。例えばドミトリーに言及していることを既に抱いているグループ分けをしましたか? – Tyron78

答えて

0

あなたはこれを試してみてください。

SELECT * 
FROM Categories C 
WHERE C.Category_id IN (SELECT P.Category_id FROM Products P GROUP BY P.Category_id HAVING COUNT(*) > 1) 
+0

質問に明示的に記載されている*返品**のみ* **より多くの**製品を持っているカテゴリ*あなたの答えはこの要件を満たしていません。 – iamdave

+1

ありがとうございました。私は編集しました。 –

+0

@Tien Nguyen あなたのコードは完璧です! しかし私は最初の質問で非常に重要なことを忘れました: "Products"テーブルでは、 "einai_ram"という名前のフィールドもあります。このフィールドのデータ型は "BIT"です。 "einai_ram"フィールドがTRUE(チェック)でなければならないというクエリにも追加します。 – user2986570

0

あなたはすべての集計やった後、あなたのデータセットをフィルタリングするクエリのこのタイプのhaving句、使用することができます。

declare @Categories table(CategoryID int); 
declare @Products table(ProdID int, CategoryID int); 

insert into @Categories values(1),(2),(3); 
insert into @Products values(10,1),(20,1),(30,2),(40,2),(50,3); 

select c.CategoryID 
     ,count(1) as ProductCount 
from @Categories c 
    left join @Products p 
     on(c.CategoryID = p.CategoryID) 
group by c.CategoryID 
having count(1) > 1; 

出力:

+------------+--------------+ 
| CategoryID | ProductCount | 
+------------+--------------+ 
|   1 |   2 | 
|   2 |   2 | 
+------------+--------------+ 
0

使用簡易次のデモとしてHavingと: -

create table Products (ProductID int, name varchar(50), Category_id int) 
insert into Products 
values 
(1,'aaaa',1), 
(2,'bbbb',1), 
(3,'ccccc',2), 
(4,'11111',2), 
(5,'11111ccc',3) 

create table Categories (Category_id int, name varchar(50)) 
insert into Categories 
values 
(1,'Letters'), 
(2,'Numbers'), 
(3,'NumbersAndLetters') 

-- CategoryID = 3 has only one product .. 

select p.Category_id ,count(p.ProductID) CountProducts from 
Products p inner join Categories c 
on p.Category_id = c.Category_id 
group by p.Category_id 
having count(p.ProductID) > 1 

結果: -

Category_id CountProducts 
    1    2 
    2    2 
関連する問題