2012-03-31 15 views
1

私はテーブルを持っている単純なSQL問題

  • 製品ID, CategoryID, ...
  • カテゴリーID, Name, ..)、および
  • たFieldValueID, ProductID, Value...

これは私ですクエリ:

select count(*) from Product as p, FieldValue as v, Category c 
where c.ID = 3 and v.Value="XXX" 
and p.ID = v.ProductID and c.ID=p.CategoryID 
group by p.ID 

私の意図は、特定の基準で製品の数を数えることは明らかです。

問題は、NHibernateが私に製品の数を示す単一の数の代わりに数のリストを返すことです。私は何が欠けていますか?

ご協力いただきまして誠にありがとうございます。あなたが持っているなステートメントでgroup by

を削除する必要が

答えて

6

、あなたの代わりにすべての製品の数の、それぞれのproductIDに1つのカウントを取得します。あなたが製品の数をカウントしたい場合

は、

+0

は、だから私は完全に6つの製品を持っている(まだgroup byなし)count(*)count(distinct p.id)とを交換してください。私がグループを削除すると、結果が間違っています35。私は同じ製品のためにいくつかのFieldValuesを持っているので、製品は数回カウントされます。だから私は何人かのグループが必要です。どうやって? –

+0

何を正確に数えたいですか?製品の数は?製品あたりのフィールド値の数は?カテゴリごとの製品数?製品を持つカテゴリの数 –

+0

製品の数を入力してください。より正確には、特定の基準に合致する製品の数。 –