【发布时间】:2020-09-17 14:55:28
【问题描述】:
在这里,我从不同的表中获取所有 id,并使用“with”语句将其存储在数据集中。我需要的是,对于所有这些 id,我想从 CO_C 中提取一个名为“stat”的列。
我假设我可能需要合并 unionall 的结果,然后在 id 上使用 CO_C 进行左连接。
CO_C 表如下所示:
id Stat
FJERHT Executed
HRFGER Not Executed
JEREFH other
JFHZFH Executed
查询
with dataset as(
SELECT DISTINCT
NAME AS id,
'DIM' as "Source"
FROM
CO_D
UNION ALL
SELECT DISTINCT
PRO_ID AS id,
'CON' as "Source"
stat as stat -----> this gives me error query block has an incorrect number of result columns
FROM
CO_C
UNION ALL
SELECT DISTINCT
P_ID AS id,
'STU' as "Source"
FROM
CO_O
select * from dataset
PIVOT (
COUNT(*)
FOR "Source"
IN (
'DIM' as "Avail",
'CON' as CON,
'STU' as STU)
我尝试过的更新:
SELECT ID, stat
FROM CO_C
WHERE ID IN
(with dataset as(
SELECT DISTINCT
NAME AS id,
'DIM' as "Source"
FROM
CO_D
UNION ALL
SELECT DISTINCT
PRO_ID AS id,
'CON' as "Source"
stat as stat
FROM
CO_C
UNION ALL
SELECT DISTINCT
P_ID AS id,
'STU' as "Source"
FROM
CO_O
select * from dataset
PIVOT (
COUNT(*)
FOR "Source"
IN (
'DIM' as "Avail",
'CON' as CON,
'STU' as STU)
错误:缺少选择关键字
【问题讨论】:
-
选择列表必须匹配,即相同的列数和兼容的数据类型。将 NULL 作为 3:rd 列添加到较短的选择列表中。
-
当查询明显涉及 UNION 时,为什么您的标题会显示“non-union”?
-
我的意思是因为我不能在联合查询中包含我想要的列。