2013-09-22 67 views
0

在我的數據庫中有兩個表名爲talltree_master和talltree_harvest。 我只想顯示那些從頭開始收集的記錄(talltree_id字段)。 例如。請看下面的數據如何根據某些條件顯示數據庫中的數據?

talltree_id |harvest_qty(2009) 
1  | 5     
2  | 0    
3  | 1 

talltree_id | harvest_qty(2010) 
1  | 0     
2  | 0   
3  | 1 

talltree_id | harvest_qty(2011) 
1  | 5     
3  | 6   
4  | 0   

我想從開始,因爲它尚未收穫,只顯示tree_no 2,其中作爲tree_no 1已經收穫了2009年,2011年和4已經於2010年

的收穫下面的代碼顯示所有未收穫的記錄(顯示tree_no 1,2和4)。我不明白其中的條件包括使i'l得到正確的輸出

string query = "select talltree_id from talltree_harvest where harvest_qty=0"; 
+0

您應該使用[字符串生成器](http://msdn.microsoft.com/en-us/library/system.text.stringbuilder.aspx)。你正在創建很多字符串,因爲每個字符串都是不可變的,你不能改變它。 – Bakudan

+0

它看起來像你在做什麼將容易受到SQL注入攻擊。 –

+0

您在查詢中有很多其他字段(block_id,area_id等),您沒有在您的問題中向我們解釋。你真的需要他們這個查詢的工作?如果不是,重寫查詢,以便它使用talltree_id和harvest_qty。否則,請準確解釋每個字段的工作原理。 –

回答

1

組ID的在一起,然後檢查收穫時間的總和爲零。

select * from talltree_harvest Group by talltree_id HAVING SUM(harvest_qty) = 0 
相關問題