我有两个表,我们称它们为表A和B:-
表A看起来像这样:
A.Num1 | A.Num2 | A.Date
12345 | 38170 | 28/05/2013
12345 | 38170 | 29/05/2013
12345 | 38170 | 31/05/2013
12345 | 38170 | 01/06/2013
12345 | 38170 | 03/06/2013
12345 | 38170 | 04/06/2013
12345 | 38170 | 04/06/2013
12345 | 38170 | 07/06/2013
表2(B)看起来像这样:
B.Num1 | B.Num2 | B.Status | B.Date
12345 | 38170 | New | 28/05/2013
12345 | 38170 | Closed | 31/05/2013
12345 | 38170 | Reopened | 04/06/2013
我需要一个像这样的表作为输出-它应该基本上包含表A的所有行+表B的状态
Num1 | Num2 | Status | Date
12345 | 38170 | New | 28/05/2013
12345 | 38170 | New | 29/05/2013
12345 | 38170 | Closed | 31/05/2013
12345 | 38170 | Closed | 01/06/2013
12345 | 38170 | Closed | 03/06/2013
12345 | 38170 | Reopened | 04/06/2013
12345 | 38170 | Reopened | 04/06/2013
12345 | 38170 | Reopened | 07/06/2013
另外,最好通过简单的SQL语句,而不是过程。
提前致谢。如有任何澄清,请发表评论
因杜鲁
当表B中的两行状态更改但在同一日期时,联接中的值不一致。
举个例子:
我有两个表,分别是A和B。它们是非常大的表,并且它们记录某些信息。表A通过每隔几天扫描一次数据来记录文件,但缺少状态列。如果有更改,则表B将获得一个带有状态列的新条目。我需要将两者匹配,并为表A中与B对应的每个条目派生一个状态。
Id | Num1 | Num2 | CreatedOn | Status
100 | 12345 | 38170 | 28/05/2013 | New
150 | 12345 | 38170 | 28/05/2013 | Closed
200 | 12345 | 38170 | 31/05/2013 | Reopened
250 | 12345 | 38170 | 04/06/2013 | Closed
Id | Num1 | Num2 | CreatedOn
55 | 12345 | 38170 | 28/05/2013
99 | 12345 | 38170 | 30/05/2013
145 | 12345 | 38170 | 31/05/2013
192 | 12345 | 38170 | 31/05/2013
223 | 12345 | 38170 | 04/06/2013
Id | Num1 | Num2 | CreatedOn | Status
55 | 11552 | 38170 | 28/05/2013 | New
99 | 11552 | 38170 | 30/05/2013 | Closed
145 | 11552 | 38170 | 31/05/2013 | Reopened
192 | 11552 | 38170 | 31/05/2013 | Reopened
223 | 11552 | 38170 | 04/06/2013 | Closed
相反,我得到了:(使用Jeffrey Kamp的回复)
Id | Num1 | Num2 | CreatedOn | Status
55 | 11552 | 38170 | 28/05/2013 | Closed
99 | 11552 | 38170 | 30/05/2013 | Closed
145 | 11552 | 38170 | 31/05/2013 | Reopened
192 | 11552 | 38170 | 31/05/2013 | Reopened
223 | 11552 | 38170 | 04/06/2013 | Closed
这:(使用回复2-马克·班尼斯特)
Id | Num1 | Num2 | CreatedOn | Status
55 | 11552 | 38170 | 28/05/2013 | New
99 | 11552 | 38170 | 30/05/2013 | New
145 | 11552 | 38170 | 31/05/2013 | Reopened
192 | 11552 | 38170 | 31/05/2013 | Reopened
223 | 11552 | 38170 | 04/06/2013 | Closed
显然,记录Id-55可以是New或Closed,因为表B在同一天(2013年5月28日)有两个条目。但是逻辑是它从New-> Closed->
Reopened开始,所以有这样的方式?
对于初学者来说有些简单化:
SELECT A.Num1
,A.Num2
,NVL(
(SELECT DISTINCT
FIRST_VALUE(B.Status)
OVER (ORDER BY B.Date DESC)
FROM B
WHERE B.Num1 = A.Num1
AND B.Num2 = A.Num2
AND B.Date <= A.Date
),'New') AS Status
,A.Date
FROM A;
也许有更好的方法可能会更快地工作。
问题内容: 在我的应用程序中,我有一些异步Web服务。服务器接受请求,返回OK响应,并开始使用AsyncTaskExecutor处理请求。我的问题是如何在此处启用请求范围,因为在此处理中,我需要获取由以下内容注释的类: 现在我得到异常: 因为它在SimpleAsyncTaskExecutor而不是在DispatcherServlet 我的请求异步处理 taskExecutor在哪里: 问题答案:
我使用的是jquery数据表。我在做日期范围筛选。当我选择“最小日期”和“最大日期”时,结果是数据表上没有筛选数据。我用了剧本 null null null null 日期格式为YYYY-MM-DD。每次我用日期范围搜索时,结果不会出现在数据表中。请帮帮我,我哪里做错了。谢谢。
我正在尝试使用Node Lambda函数在日期范围之间进行扫描。我正确扫描了数据,但我似乎无法让日期表达式正确工作。 这目前并没有试图在一个范围内返回,它只是现在查看一个日期。我不想在表达式中添加一个和,直到我知道这是可行的。 我的DynamoDB中的示例文档的结构如下: 文档id是我的主键。我对Lamdba和DynamoDB的组合还很陌生,所以我可能把它完全设置错了,但这是我通过研究成功完成的。
我有一个自定义验证器,用来确保在实体保存之前对其应用一些业务规则。 当父(Product)实体被更新(对于save,它工作得很好),以及子实体(列表中的一个或多个ProductPrice)中的一些更改时,它会失败,因为保存列表中ProductPrice的一个实例不知道下一步要保存的ProductPrice的任何信息。 详解: 假设对于给定的,DB中有两个行,如下所示: 假设我希望将作为实体一部分的
问题内容: 我需要限制用户可以从中选择什么。 我似乎无法弄清楚如何限制分钟数,因此他们无法选择过去的日期。 如果我不能这样做,是否还有其他小部件可以让我具有这种灵活性? 问题答案: 根据我收到的建议,以下是我想出的方法:将可选日期限制为仅当日和之后。这适用于GWT 2.1.1 为了完整起见,以下是处理日期的辅助方法:
我正在与一个带有日期范围的雪花数据库左联接查询作斗争。请在下面找到样表内容 我的雪花SQL查询:选择o.ORDER_DATE,大小写当ORDER_DATE为NULL时,则“no”否则“yes”结束为ORDER_PLACED,C.customer_id,C.name FROM CUSTOMER C左联接C.customer_id=o.customer_id和o.ORDER_DATE>=DATEADD