gpt4 book ai didi

sql - 如果该表包含相关数据,则 Netezza SQL 加入该表

转载 作者:行者123 更新时间:2023-12-04 21:46:12 25 4
gpt4 key购买 nike

我正在尝试根据特定时间范围内的某些列连接表。我已经尝试了几种方法,但无法解决这个问题。

我从一个简单的查询开始:

SELECT *
FROM admin.mktdmtunit c
WHERE c.unitid IN ('2756')
AND c.calledofftime between to_timestamp('2012-12-05 05:00:01','yyyy-mm-dd hh:mi:ss')
AND to_timestamp('2012-12-06 05:00:00','yyyy-mm-dd hh:mi:ss')

返回 1 行。

然后我添加另一个表:
 SELECT *
FROM admin.mktdmtunit c
INNER JOIN admin.mktmanualdispatch_all mrd
ON c.unitid = mrd.unitid
where c.unitid in ('2756')
AND (c.calledofftime between to_timestamp('2012-12-05 05:00:01','yyyy-mm-dd hh:mi:ss')
and to_timestamp('2012-12-06 05:00:00','yyyy-mm-dd hh:mi:ss')
OR mrd.effectivetime between to_timestamp('2012-12-05 05:00:01','yyyy-mm-dd hh:mi:ss')
and to_timestamp('2012-12-06 05:00:00','yyyy-mm-dd hh:mi:ss'))

根据该 unitid 的 mrd 表中的 4 个条目返回 4 行。但这些都与那个日期无关,所以我不想看到这些信息。

所以我试过这个:
SELECT *
FROM admin.mktdmtunit c
where c.unitid in ('2756')
AND c.calledofftime between to_timestamp('2012-12-05 05:00:01','yyyy-mm-dd hh:mi:ss')
and to_timestamp('2012-12-06 05:00:00','yyyy-mm-dd hh:mi:ss')
OR (exists(SELECT mrd.effectivetime
FROM admin.mktmanualdispatch_all mrd
WHERE mrd.effectivetime between to_timestamp('2012-12-05 05:00:01','yyyy-mm-dd hh:mi:ss')
and to_timestamp('2012-12-06 05:00:00','yyyy-mm-dd hh:mi:ss')
AND c.unitid = mrd.unitid)

但这给出了一个错误,说它在最后一行的“mrd.unitid”之前需要一个“,”。

所以我也试过这个:
SELECT *
FROM admin.mktdmtunit c
INNER JOIN admin.mktmanualdispatch_all mrd
ON
mrd.effectivetime between to_timestamp('2012-12-05 05:00:01','yyyy-mm-dd hh:mi:ss')
and to_timestamp('2012-12-06 05:00:00','yyyy-mm-dd hh:mi:ss')
AND c.unitid = mrd.unitid
where c.unitid in ('2756')
AND c.calledofftime between to_timestamp('2012-12-05 05:00:01','yyyy-mm-dd hh:mi:ss')
and to_timestamp('2012-12-06 05:00:00','yyyy-mm-dd hh:mi:ss')

但这不会返回任何行。

所以要清楚,我想要从这个特定查询中得到 1 行,它包含基于 c.callofftime 的信息,并且没有从另一个表中提取的信息,因为没有基于 mrd.effective 时间的相关数据。
谢谢

最佳答案

海报已经回答了这个问题,但是,是的,左加入第二个表并在联接逻辑中包含 mrd.effectivetime 条件,因此如果不存在,您将收到 NULL。这将允许您维护主表中的核心信息。

关于sql - 如果该表包含相关数据,则 Netezza SQL 加入该表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13883766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com