2017-03-20 73 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'。 –