SQL Select省略倍数

时间:2018-07-26 22:44:44

标签: sql sql-server left-join sql-order-by

我有两(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。

1 个答案:

答案 0 :(得分:0)

您可以使用Rank函数对帐户的订单进行排名,然后选择第一个排名订单,如下所示-

#include <boost\lexical_cast.hpp>
stringstream ss;    
std::wstring convertedStr = boost::lexical_cast<std::wstring>(ss);