我有两(2)个表格-帐户和订单。订单列的每一行都包含一个帐户ID,该ID会将其链接到“帐户”表中的特定帐户。每个帐户可以有任意数量(零个n)的订单。我已经在“帐户ID”上将“ OUTER OUTER”加入了两者,因此该表如下所示:
|Account ID|Account Data|Order A/C ID|Order ID|Order Date|
----------------------------------------------------------
|A001 |Blah blah |A001 |O001 |Some date |
|A001 |Blah blah |A001 |O002 |Some date |
|A002 |Blah blah |A002 |O003 |Some date |
|A003 |Blah blah |Null | | |
|A004 |Blah blah |A004 |O005 |Some date |
|A004 |Blah blah |A004 |O006 |Some date |
|A005 |Blah blah |A005 |O007 |Some date |
|A005 |Blah blah |A005 |O008 |Some date |
|A005 |Blah blah |A005 |O009 |Some date |
但是我希望该表仅按订单的某个字段显示每个帐户一行(例如,对于一个帐户的每个订单,在“订单日期”字段中选择最近的一行,仅显示该行)。
该表还必须显示没有该帐户的订单的行。
当然,我们的想法是为每个帐户获取一个表,以显示其最新订单;如果该帐户没有订单,则在“订单”字段中为空。
哦,它的价值是SQL Server 17.8。
答案 0 :(得分:0)
您可以使用Rank函数对帐户的订单进行排名,然后选择第一个排名订单,如下所示-
#include <boost\lexical_cast.hpp>
stringstream ss;
std::wstring convertedStr = boost::lexical_cast<std::wstring>(ss);