显示来自 table 的数据,即使没有数据
Show data from table even if there is no data
我有 3 个 table:
Compania
中的数据table:
Periodo
中的数据table:
VAC_PERIODOCIA
中的数据table:
我想显示Periodo
搜索的所有公司(COMPANIA
)和(vac_aplica
列中的值),无论它们是否已注册。
我试过这个:
SELECT
COMPANIA.CIA_CLAVE, COMPANIA.CIA_NOM,
CASE
WHEN VAC_PERIODOCIA.VAC_APLICA IS NULL
THEN 'N'
ELSE 'Y'
END VAC_APLICA
FROM
COMPANIA
LEFT JOIN
VAC_PERIODOCIA ON COMPANIA.CIA_CLAVE = VAC_PERIODOCIA.CIA_CLAVE
WHERE
VAC_PERIODOCIA.PERIODO = '2018 - 2019'
结果:
我要的是这个:
首先,问题一团糟:问题中的表格和列与您提供给我们的示例不同。请解决这个问题。
我不会说西班牙语,所以我只能假设 VAC_PERIODICA 是 Periodo。在这种情况下,您需要将 where 条件下的内容移至 join 子句。像这样
SELECT COMPANIA.CIA_CLAVE,COMPANIA.CIA_NOM,
CASE
WHEN Periodo.valor IS NULL THEN 'N'
ELSE 'Y'
END VAC_APLICA
FROM Compania
LEFT JOIN Periodo
ON COMPANIA.CIA_CLAVE = Periodo.valor
AND Periodo.PERIODO = '2018 - 2019'
order by 1
我有 3 个 table:
Compania
中的数据table:
Periodo
中的数据table:
VAC_PERIODOCIA
中的数据table:
我想显示Periodo
搜索的所有公司(COMPANIA
)和(vac_aplica
列中的值),无论它们是否已注册。
我试过这个:
SELECT
COMPANIA.CIA_CLAVE, COMPANIA.CIA_NOM,
CASE
WHEN VAC_PERIODOCIA.VAC_APLICA IS NULL
THEN 'N'
ELSE 'Y'
END VAC_APLICA
FROM
COMPANIA
LEFT JOIN
VAC_PERIODOCIA ON COMPANIA.CIA_CLAVE = VAC_PERIODOCIA.CIA_CLAVE
WHERE
VAC_PERIODOCIA.PERIODO = '2018 - 2019'
结果:
我要的是这个:
首先,问题一团糟:问题中的表格和列与您提供给我们的示例不同。请解决这个问题。
我不会说西班牙语,所以我只能假设 VAC_PERIODICA 是 Periodo。在这种情况下,您需要将 where 条件下的内容移至 join 子句。像这样
SELECT COMPANIA.CIA_CLAVE,COMPANIA.CIA_NOM,
CASE
WHEN Periodo.valor IS NULL THEN 'N'
ELSE 'Y'
END VAC_APLICA
FROM Compania
LEFT JOIN Periodo
ON COMPANIA.CIA_CLAVE = Periodo.valor
AND Periodo.PERIODO = '2018 - 2019'
order by 1