【问题标题】:how to get the latest records by joining two tables in sql with no common fields如何通过在sql中加入两个没有公共字段的表来获取最新记录
【发布时间】:2022-01-20 10:29:57
【问题描述】:

我有 2 个数据扩展/数据表,它们之间没有共同的字段,但我想从这两个表中获取最新信息并希望存储在第三个故事中。

下面是两个表的结构和数据。

表 1

表 2

我正在寻找类似这样的结果

下面的查询我正在使用但没有得到预期的结果。

SELECT a.File_Name,
b.ImportStatus,
b.NumberDuplicated,
b.NumberSuccessful,
b.NumberErrors,
(b.NumberSuccessful+b.NumberErrors) as Total,
max(a.INSERT_TIMESTAMP AT TIME ZONE 'Central America Standard Time' AT TIME ZONE 'UTC') as INSERT_TIMESTAMP,
max(b.StartDate AT TIME ZONE 'Central America Standard Time' AT TIME ZONE 'UTC') as StartDate

from [Test_Unzip_FileImport] a

INNER JOIN [POC_JSON_RESPONSE] b
ON 1=1

Where Cast(a.INSERT_TIMESTAMP as Date) = Cast(b.StartDate as Date)
and Cast(a.INSERT_TIMESTAMP as Date) = Cast (GetDate()-1 as Date)
Group By INSERT_TIMESTAMP,File_Name,ImportStatus,NumberDuplicated,NumberSuccessful,NumberErrors

【问题讨论】:

  • 图片不可读,请添加为文字。
  • 嗨@P.Salmon 我不知道如何将它添加为文本,我已经重新添加了清晰的图片

标签: mysql sql automation salesforce-marketing-cloud


【解决方案1】:

它使用下面的查询,

SELECT Top 1
a.File_Name,
b.ImportStatus,
b.NumberDuplicated,
b.NumberSuccessful,
b.NumberErrors,
(b.NumberSuccessful+b.NumberErrors) as Total,
max(a.INSERT_TIMESTAMP AT TIME ZONE 'Central America Standard Time' AT TIME ZONE 'UTC') as INSERT_TIMESTAMP,
max(b.StartDate AT TIME ZONE 'Central America Standard Time' AT TIME ZONE 'UTC') as StartDate

from [Test_Unzip_FileImport] a

INNER JOIN [POC_JSON_RESPONSE] b
ON 1=1

Where Cast(a.INSERT_TIMESTAMP as Date) = Cast(b.StartDate as Date)
and Cast(a.INSERT_TIMESTAMP as Date) = Cast (GetDate() as Date)
and Cast(b.StartDate as Date) = Cast (GetDate() as Date)
Group By File_Name,ImportStatus,NumberDuplicated,NumberSuccessful,NumberErrors
ORDER By INSERT_TIMESTAMP DESC,StartDate DESC

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多