2012-03-31 54 views
1

我已經表簡單的SQL問題

  • 產品ID, CategoryID, ...
  • 類別ID, Name, ..)和
  • fieldValue方法ID, 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正在給我返回一個數字列表,而不是一個數字與產品數量。我錯過了什麼?

任何幫助,非常感謝。

回答

6

您必須刪除group by

你所擁有的statment,你會得到一個計數每個的productID,而不是對所有產品的計數。

如果你要計算的產品數量,count(*)count(distinct p.id)代替(仍然沒有group by

+0

所以我有6種產品。如果我通過我得到的結果35去除了這個錯誤。因爲我有幾個FieldValues用於同一個產品,並且產品計數好幾次。所以我需要某種團體。不知道如何? – 2012-03-31 16:32:32

+0

那你到底想要算什麼?產品的數量?每個產品的字段值的數量?每個類別的產品數量?有產品的類別的數量? – 2012-03-31 16:34:38

+0

產品數量。更準確地說,符合特定條件的產品數量。 – 2012-03-31 16:35:44