我有这样一张table:
CustName Country RecordedTime
---------------------------------------------
Alex Australia 2018-Jun-01 08:00 AM
Alex China 2018-Jun-01 10:00 AM
Alex Japan 2018-Jun-01 11:00 AM
John Australia 2018-Jun-01 08:00 AM
John China 2018-Jun-02 08:00 AM
Bob Australia 2018-Jun-02 09:00 AM
Bob Brazil 2018-Jun-03 09:50 AM
Bob Africa 2018-Jun-03 11:50 AM
Bob India 2018-Jun-03 12:55 AM
如果创建了新记录,并且该记录在同一天被更改了几次,则输出将成为更改后的记录的第一个和最后一个记录;如果同一天对现有记录进行了几次更改,则输出应在第一个更改和当前更改之前改变
例如:如果输入日期为2018年6月1日,则输出应如下所示;
CustName Country RecordedTime Audit History
----------------------------------------------------------------
Alex Australia 2018-Jun-01 08:00 AM ADD NEW
Alex Japan 2018-Jun-01 11:00 AM CHANGE CURRENT
John Australia 2018-Jun-01 08:00 AM ADD NEW
如果输入日期为2018年6月2日,则输出应如下所示;
CustName Country RecordedTime Audit History
-----------------------------------------------------------------
John Australia 2018-Jun-01 08:00 AM CHANGE BEFORE
John China 2018-Jun-02 08:00 AM CHANGE CURRENT
Bob Australia 2018-Jun-02 09:00 AM ADD NEW
如果输入日期为2018年6月3日,则输出应为以下内容;
CustName Country RecordedTime Audit History
----------------------------------------------------------------
Bob Australia 2018-Jun-02 09:00 AM CHANGE BEFORE
Bob India 2018-Jun-03 12:55 AM CHANGE CURRENT
任何帮助深表感谢。
也许您可以使用以下解决方案 **[See working demo](http://rextester.com/KPPS98807)**
declare @d date='2018-Jun-03'
; with Indexer as
(
select
*,
rn= row_number() over(partition by CustName order by RecordedTime),
rn2=row_number() over(partition by CustName order by RecordedTime desc)
from records
)
,GetValidCustomerRecords as
(
select
CustName,
Country,
RecordedTime,
Audit = case when cast(RecordedTime as date)=@d and rn=1 then 'add' else 'change' end,
History = case
when cast(RecordedTime as date)=@d and rn=1
then 'new'
when cast(RecordedTime as date)<@d and rn=1
then 'before'
else 'current' end
from Indexer i
where CustName in
(
select
distinct CustName
from records
where cast(RecordedTime as date)=@d
)
and (rn=1 or rn2=1) and cast(RecordedTime as date)<=@d
)
select * from GetValidCustomerRecords
order by CustName, RecordedTime
我有一个Firebase实时数据库,其中有一组与谷歌地图上的位置相关的项目。所以Firebase中的每个孩子都有这样的数据结构。 在我的应用程序中,数据库中的每个项目,以标记的形式添加到Google地图上的相关位置。现在我认为将所有项目发送给所有用户不是一个好主意。仅向用户发送与他们相关的这些项目会更有效。这些项目是与用户位于同一区域中的一个,在这种情况下,相同的区域意味着相同的邮政编码。 为了处
问题内容: 我有以下表格及其关系。我将JSON数据存储在client_services表中。它们是使用MySQL查询来检索JSON值的任何方式,如下所示: 还是可以进一步规范化client_services表? 表: 表: 表: 表: 问题答案: 由于很多人都亲自问过我这个问题,所以我想我会再作一次修改。这是一个具有SELECT,Migration和View Creation的完整SQL的要点,
我试图创建一个简单的程序,从用户的名字,手机号码和电子邮件地址,然后把数据在Firebase实时数据库。 有3个输入框和一个按钮,按一下就可以完成上面的操作。代码如下: 我这样设置了消防基地:
{“type”:“record”、“name”:“twitter_schema”、“namespace”:“com.miguno.avro”、“fields”:[{“name”:“username”、“type”:“string”、“doc”:“Twitter.com上的用户帐户名称”}、{“name”:“tweet”、“type”:“string”、“doc”:“用户的Twitter消息内容”}
firebase数据库最近的更新似乎有一些变化。我的项目在firebase\u数据库:^7.0.0版本下运行良好,但在firebase数据库的更新版本中,我无法更新项目代码。 以下是v7的工作版本 firebase\u数据库^9.0.12上的同一代码出现错误。我收到的错误在`(DataSnapShot snap)async{…}上错误是 无法将参数类型“Future Function(DataSn
所以我根据YouTube上的教程创建了一个房间数据库。我有两个栏day and likes,每个栏都有int.目前,我已经用三行数据手动填充了数据库。 下面是手动填充数据库的代码: 在我的Dao类中,我当前有Insert、Update、deleteAll和getall...方法。这里是道: } 现在,我要从Room数据库中检索基于当天的数据。所以我想要第6天的likes数,它是1。我想检索数据并将