【发布时间】:2020-03-08 07:45:07
【问题描述】:
我正在尝试使用 where 子句中的列表构建子查询,我尝试了几种变体,我认为问题在于我构建 WHERE IN 的方式。非常感谢您的帮助!
SELECT a.ACCT_SK,
a.BTN,
a.PRODUCT_SET,
MAX(b.ORD_CREATD_DT)
FROM MM.MEC_ACCT_ATTR a, CDI_CRM.ORD_MSTR b
WHERE a.ACCT_SK=b.ACCT_SK AND a.BTN=b.BTN
(SELECT b.ACCT_SK, b.ORD_CREATD_DT
FROM CDI_CRM.ORD_MSTR b
WHERE b.ACCT_SK IN ('44347714',
'44023302',
'43604964'));
选择失败。 3706: (-3706) 语法错误:预期在 '(' 和 'SELECT' 关键字之间有一些东西
所需的输出是一个表格,其中包含 50 个 ACCT_SK 的 Product 集,其中最近的订单日期与 ACCT_SK 和 BTN 匹配。
【问题讨论】:
-
子查询应该只返回 1 列。
-
子查询只能返回一列,你的语法无效。您需要将某些内容与子查询的结果进行比较。
-
有没有办法达到我想要的结果?昨晚我阅读了有关子查询的所有内容,并认为这可能是获得所需内容的方法。我记得读它只返回一行......所以这是有道理的。我应该如何考虑这个问题?
-
顶部 Select 中没有
WHERE IN,只是一个不相关的 #2 Select -
如果没有样本数据和期望的结果,我认为我们无法回答这个问题。