2017-03-20 70 views
0

我遇到了一個查詢問題,我需要在C#中的datagrid中顯示數據。 我有桌子籃子,並在一個特定的籃子裏,我可以節省很多工作(它不受限制)如何查詢多個相似記錄中只顯示一條記錄的查詢? [Microsoft SQL]

所以現在我已經完成查詢,這讓我在datagrid中的所有工作,所以我有顯示在datagarid和我重複的籃子需要顯示每個籃子,但最後輸入的工作順序。 我想進行查詢,只顯示每個籃子的一個工單(只有最新或最後輸入的工單)。

我們嘗試與羣體和獨特,但它沒有奏效。

我試着用這些

select db_basket.basket_id, db_basket_order.basket_order_id, db_basket.basket_mark, prod_workorder.brojnaloga, db_basket_order.startdate, db_basket_order.quantity 
from db_basket 
left join db_basket_order 
on db_basket_order.basket_id=db_basket.basket_id 
left join prod_workorder 
on db_basket_order.workorder_id=prod_workorder.workorderid 

select db_basket.basket_mark, max(db_basket_order.startdate) as startdate 
from db_basket 
left join db_basket_order 
on db_basket_order.basket_id=db_basket.basket_id 
group by basket_mark 

Query results

在這裏,我有一個圖片,圖片上可以看到,查詢顯示我有同樣的basket_id幾行,正如我說的,我只需要一個籃子將顯示我最新的工作順序。

謝謝。

+0

下面的答案。查詢顯示具有相同'basket_id'的多行的原因是因爲它們都具有相同的編號。除非您使用'basket_order_id'或使'basket_id'代碼具有唯一性,否則它將始終顯示所述行。 –

回答

0

你可以嘗試從@如果你把`basket_id`獨特阿里的代碼將工作是這樣的

select db_basket.basket_id, db_basket_order.basket_order_id, db_basket.basket_mark, prod_workorder.brojnaloga, db_basket_order.startdate, db_basket_order.quantity 
from db_basket 
left join db_basket_order 
on db_basket_order.basket_id=db_basket.basket_id 
left join prod_workorder 
on db_basket_order.workorder_id=prod_workorder.workorderid 
group by db_basket.basket_id //<--unique ids 
order by db_basket_order.basket_order_id desc //<--with highest order 
+0

根據OP的照片,'db_basket.basket_id'不是唯一的,因爲我看到3'db_basket.basket_id = 25'。 –